DispatchRuntime クラス

定義

既定のサービス動作の変更や、カスタム オブジェクトの結合に使用できるプロパティを公開します。このカスタム オブジェクトで、受信メッセージをオブジェクトに変換して操作にディスパッチする方法を変更できます。 このクラスは継承できません。

public ref class DispatchRuntime sealed
public sealed class DispatchRuntime
type DispatchRuntime = class
Public NotInheritable Class DispatchRuntime
継承
DispatchRuntime

注釈

DispatchRuntime クラスは、サービスまたは個別のエンドポイントの既定動作を変更するため、またはカスタム変更を実装したオブジェクトを次のサービス プロセスの一方または両方に挿入するために使用します。

  1. 受信メッセージをオブジェクトに変換し、メソッド呼び出しとしてサービス オブジェクト上でそれらのオブジェクトを解放します。

  2. サービス操作呼び出しに対する応答から受信したオブジェクトを送信メッセージに変換します。

Windows Communication Foundation (WCF) では、チャネルディスパッチャーとエンドポイント ディスパッチャーは、新しいチャネルの受け入れ、メッセージの受信、メソッドのディスパッチと呼び出し、応答処理を担当するサービス コンポーネントです。 ServiceHost オブジェクトによって公開される各エンドポイントには、1 つのエンドポイント ディスパッチャーと、関連付けられた 1 つのチャネル ディスパッチャーがあります。さらに、双方向通信に参加する各クライアントには、各コールバック エンドポイントのエンドポイント ディスパッチャーとチャネル ディスパッチャーもあります。

DispatchRuntime を使用すると、メッセージが認識されない場合でも、特定のコントラクト全体のすべてのメッセージについて、特定のチャネルまたはエンドポイント ディスパッチャーを途中受信および拡張できます。 コントラクト内で宣言されているどのメッセージとも一致しないメッセージが到着すると、UnhandledDispatchOperation プロパティにより返された操作にディスパッチされます。 特定の操作についてすべてのメッセージを途中受信または拡張する方法については、DispatchOperation クラスを参照してください。

DispatchRuntime クラスによって公開されているディスパッチャー拡張性は次の 4 つの領域に大別できます。

  1. ディスパッチ コンポーネントは、DispatchRuntime のプロパティおよび ChannelDispatcher プロパティによって返される関連チャネル ディスパッチャーのプロパティを使用して、チャネル ディスパッチャーがチャネルを受け入れてクローズする方法をカスタマイズします。 この分類に属するプロパティとして、ChannelInitializers プロパティおよび InputSessionShutdownHandlers があります。

  2. メッセージ コンポーネントを、処理されるメッセージごとにカスタマイズします。 この分類に属するプロパティとして、MessageInspectorsOperationSelectorOperationsErrorHandlers があります。

  3. インスタンス コンポーネントが、特定のサービス型のインスタンスの作成、有効期間、破棄をカスタマイズします。 サービス オブジェクトの有効期間の詳細については、InstanceContextMode プロパティを参照してください。 このカテゴリには、InstanceContextInitializers プロパティおよび InstanceProvider プロパティが含まれます。

  4. セキュリティ関連コンポーネントは、次のプロパティを使用できます。

カスタムの拡張オブジェクトは通常、DispatchRuntime プロパティに割り当てるか、またはサービス動作 (IServiceBehavior を実装するオブジェクト)、契約動作 (IContractBehavior を実装するオブジェクト)、エンドポイント動作 (IEndpointBehavior を実装するオブジェクト) のいずれかによってコレクションに挿入します。 次に、インストール動作オブジェクトを、プログラムで直接、またはカスタムの BehaviorExtensionElement オブジェクトを実装して適切な動作コレクションに追加し、アプリケーション構成ファイルを使用して動作を挿入できるようにします。

プロパティ

AutomaticInputSessionShutdown

クライアントが出力セッションを閉じるときに、サービスは入力セッションを閉じるかどうかを指定する値を取得または設定します。

CallbackClientRuntime

双方向コールバック エンドポイントに対する送信呼び出しに関する Windows Communication Foundation (WCF) への機能拡張のインストール ポイントを表す ClientRuntime オブジェクトを取得します。

ChannelDispatcher

このディスパッチ ランタイム オブジェクトの ChannelDispatcher を取得します。

ConcurrencyMode

サービスのインスタンスがメッセージを順番に処理するか、または同時に処理するかを取得または設定します。

EndpointDispatcher

このディスパッチ ランタイムの EndpointDispatcher を取得します。

EnsureOrderedDispatch

メッセージが送信された順序でディスパッチされるかどうかを示す値を取得します。

ExternalAuthorizationPolicies

特定のクレーム セットについて、ユーザーを承認するための一連のルールを定義する外部承認ポリシーを取得または設定します。

IgnoreTransactionMessageProperty

TransactionMessageProperty を無視するかどうかを取得または設定します。

ImpersonateCallerForAllOperations

受信メッセージによって提供される資格情報を使用してサービスが偽装を試みるかどうかを制御する値を取得または設定します。

ImpersonateOnSerializingReply

応答操作のシリアル化で偽装が使用されているかどうかを示す値を取得します。

InputSessionShutdownHandlers

入力セッションを閉じる方法を制御するためのカスタム ハンドラーの追加に使用できる IInputSessionShutdown オブジェクトのコレクションを取得します。

InstanceContextInitializers

IInstanceContextInitializer オブジェクトが最初に作成されたときにそれを検査または変更するために使用できる InstanceContext オブジェクトのコレクションを取得します。

InstanceContextProvider

IInstanceContextProvider が使用する DispatchRuntime を取得または設定します。

InstanceProvider

サービス オブジェクトの作成と破棄の制御に使用できる IInstanceProvider オブジェクトを取得または設定します。

MessageAuthenticationAuditLevel

メッセージ認証成功イベントを SecurityAuditLogLocation で指定されているイベント ログに書き込むかどうかを指定する値を取得または設定します。

MessageInspectors

エンドポイントを通過するすべての受信および送信メッセージにカスタム メッセージ インスペクターを結合するために使用できる IDispatchMessageInspector オブジェクトのコレクションを取得します。

Operations

特定の操作の実行動作の制御に使用できる DispatchOperation オブジェクトのコレクションを取得します。

OperationSelector

特定のメッセージの宛先 IDispatchOperationSelector の選択を制御する DispatchOperation オブジェクトを取得または設定します。

PreserveMessage

メッセージが保持されるかどうかを取得または設定します。

PrincipalPermissionMode

CurrentPrincipal プロパティの設定方法を指定する値を取得または設定します。

ReleaseServiceInstanceOnTransactionComplete

トランザクションが正常に完了した後でサービス オブジェクトをリサイクルするかどうかを指定する値を取得または設定します。

RoleProvider

RoleProvider が使用するカスタム DispatchRuntime を取得または設定します。

SecurityAuditLogLocation

監査ログの場所を取得または設定します。

ServiceAuthenticationManager

サービス操作の認証プロセスを管理するオブジェクトを取得または設定します。

ServiceAuthorizationAuditLevel

監査するサービス承認イベントを制御する値を取得または設定します。

ServiceAuthorizationManager

ServiceAuthorizationManager に関する承認検査を提供する DispatchRuntime を取得します。

SingletonInstanceContext

IInstanceContextProvider が使用するシングルトン DispatchRuntime を取得または設定します。

SuppressAuditFailure

ログ記録処理中に発生した致命的でない例外を抑制するかどうかを指定する値を取得または設定します。

SynchronizationContext

サービス操作の呼び出しに使用される同期コンテキストを取得または設定します。

TransactionAutoCompleteOnSessionClose

セッションが閉じるときに現在のトランザクションを自動的に完了するかどうかを指定する値を取得または設定します。

Type

コントラクトの型を取得または設定します。

UnhandledDispatchOperation

認識されないメッセージをディスパッチする操作を取得または設定します。

ValidateMustUnderstand

ValidateMustUnderstand の値を取得または設定します。

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象