DispatchRuntime DispatchRuntime DispatchRuntime DispatchRuntime Class

定義

既定のサービス動作の変更や、カスタム オブジェクトの結合に使用できるプロパティを公開します。このカスタム オブジェクトで、受信メッセージをオブジェクトに変換して操作にディスパッチする方法を変更できます。Exposes properties that can be used to modify default service behavior as well as attach custom objects that can modify how incoming messages are transformed into objects and dispatched to operations. このクラスは継承できません。This class cannot be inherited.

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

注釈

DispatchRuntime クラスは、サービスまたは個別のエンドポイントの既定動作を変更するため、またはカスタム変更を実装したオブジェクトを次のサービス プロセスの一方または両方に挿入するために使用します。Use the DispatchRuntime class either to modify the default behavior of a service or individual endpoint, or to insert objects that implement custom modifications to one or both of the following service processes:

  1. 受信メッセージをオブジェクトに変換し、メソッド呼び出しとしてサービス オブジェクト上でそれらのオブジェクトを解放します。The transformation of incoming messages into objects and releasing those objects as method invocations on a service object.

  2. サービス操作呼び出しに対する応答から受信したオブジェクトを送信メッセージに変換します。The transformation of objects received from the response to a service operation invocation into outbound messages.

Windows Communication Foundation (WCF) では、チャネルおよびエンドポイントディスパッチャーは、新しいチャネルの受け入れ、メッセージの受信、メソッドのディスパッチと呼び出し、および応答処理を行うサービスコンポーネントです。In Windows Communication Foundation (WCF), the channel and endpoint dispatchers are the service components responsible for accepting new channels, receiving messages, method dispatch and invocation, and response processing. ServiceHost オブジェクトによって公開される各エンドポイントには、1 つのエンドポイント ディスパッチャーと、関連付けられた 1 つのチャネル ディスパッチャーがあります。さらに、双方向通信に参加する各クライアントには、各コールバック エンドポイントのエンドポイント ディスパッチャーとチャネル ディスパッチャーもあります。Each endpoint exposed by a ServiceHost object has one endpoint dispatcher and an associated channel dispatcher; in addition, each client that participates in duplex communication also has an endpoint dispatcher and channel dispatcher for each callback endpoint.

DispatchRuntime を使用すると、メッセージが認識されない場合でも、特定のコントラクト全体のすべてのメッセージについて、特定のチャネルまたはエンドポイント ディスパッチャーを途中受信および拡張できます。The DispatchRuntime enables you to intercept and extend the channel or endpoint dispatcher for all messages across a particular contract, even when a message is not recognized. コントラクト内で宣言されているどのメッセージとも一致しないメッセージが到着すると、UnhandledDispatchOperation プロパティにより返された操作にディスパッチされます。When a message arrives that does not match any messages declared in the contract it is dispatched to the operation that was returned by the UnhandledDispatchOperation property. 特定の操作についてすべてのメッセージを途中受信または拡張する方法については、DispatchOperation クラスを参照してください。To intercept or extend across all messages for a particular operation, see the DispatchOperation class.

DispatchRuntime クラスによって公開されているディスパッチャー拡張性は次の 4 つの領域に大別できます。There are four main areas of dispatcher extensibility exposed by the DispatchRuntime class:

  1. ディスパッチ コンポーネントは、DispatchRuntime のプロパティおよび ChannelDispatcher プロパティによって返される関連チャネル ディスパッチャーのプロパティを使用して、チャネル ディスパッチャーがチャネルを受け入れてクローズする方法をカスタマイズします。Dispatch components use the properties of the DispatchRuntime and those of the associated channel dispatcher returned by the ChannelDispatcher property to customize how the channel dispatcher accepts and closes channels. この分類に属するプロパティとして、ChannelInitializers プロパティおよび InputSessionShutdownHandlers があります。This category includes the ChannelInitializers and InputSessionShutdownHandlers properties.

  2. メッセージ コンポーネントを、処理されるメッセージごとにカスタマイズします。Message components are customized for each message processed. この分類に属するプロパティとして、MessageInspectorsOperationSelectorOperationsErrorHandlers があります。This category includes the MessageInspectors, OperationSelector, Operations, and the ErrorHandlers properties.

  3. インスタンス コンポーネントが、特定のサービス型のインスタンスの作成、有効期間、破棄をカスタマイズします。Instance components customize the creation, lifetime, and disposal of instances of the service type. サービス オブジェクトの有効期間の詳細については、InstanceContextMode プロパティを参照してください。For more information about service object lifetimes, see the InstanceContextMode property. このカテゴリには、InstanceContextInitializers プロパティおよび InstanceProvider プロパティが含まれます。This category includes the InstanceContextInitializers and the InstanceProvider properties.

  4. セキュリティ関連コンポーネントは、次のプロパティを使用できます。Security-related components can use the following properties:

カスタムの拡張オブジェクトは通常、DispatchRuntime プロパティに割り当てるか、またはサービス動作 (IServiceBehavior を実装するオブジェクト)、契約動作 (IContractBehavior を実装するオブジェクト)、エンドポイント動作 (IEndpointBehavior を実装するオブジェクト) のいずれかによってコレクションに挿入します。Typically custom extension objects are assigned to a DispatchRuntime property or inserted into a collection by a service behavior (an object that implements IServiceBehavior), a contract behavior (an object that implements IContractBehavior), or an endpoint behavior (an object that implements IEndpointBehavior). 次に、インストール動作オブジェクトを、プログラムで直接、またはカスタムの BehaviorExtensionElement オブジェクトを実装して適切な動作コレクションに追加し、アプリケーション構成ファイルを使用して動作を挿入できるようにします。Then the installing behavior object is added to the appropriate collection of behaviors either programmatically or by implementing a custom BehaviorExtensionElement object to enable the behavior to be inserted using an application configuration file.

プロパティ

AutomaticInputSessionShutdown AutomaticInputSessionShutdown AutomaticInputSessionShutdown AutomaticInputSessionShutdown

クライアントが出力セッションを閉じるときに、サービスは入力セッションを閉じるかどうかを指定する値を取得または設定します。Gets or sets a value that specifies whether the service closes an input session when the client closes an output session.

CallbackClientRuntime CallbackClientRuntime CallbackClientRuntime CallbackClientRuntime

双方向コールバック エンドポイントに対する送信呼び出しに関する Windows Communication Foundation (WCF) への機能拡張のインストール ポイントを表す ClientRuntime オブジェクトを取得します。Gets the ClientRuntime object that represents the installation point for extensions to Windows Communication Foundation (WCF) for outbound calls to a duplex callback endpoint.

ChannelDispatcher ChannelDispatcher ChannelDispatcher ChannelDispatcher

このディスパッチ ランタイム オブジェクトの ChannelDispatcher を取得します。Gets the ChannelDispatcher for this dispatch run-time object.

ConcurrencyMode ConcurrencyMode ConcurrencyMode ConcurrencyMode

サービスのインスタンスがメッセージを順番に処理するか、または同時に処理するかを取得または設定します。Gets or sets whether an instance of a service processes messages sequentially or concurrently.

EndpointDispatcher EndpointDispatcher EndpointDispatcher EndpointDispatcher

このディスパッチ ランタイムの EndpointDispatcher を取得します。Gets the EndpointDispatcher for this dispatch runtime.

EnsureOrderedDispatch EnsureOrderedDispatch EnsureOrderedDispatch EnsureOrderedDispatch

メッセージが送信された順序でディスパッチされるかどうかを示す値を取得します。Gets a value that indicates whether messages are to be dispatched in the order they were sent.

ExternalAuthorizationPolicies ExternalAuthorizationPolicies ExternalAuthorizationPolicies ExternalAuthorizationPolicies

特定のクレーム セットについて、ユーザーを承認するための一連のルールを定義する外部承認ポリシーを取得または設定します。Gets or sets the external authorization policies that define a set of rules for authorizing a user, given a set of claims.

IgnoreTransactionMessageProperty IgnoreTransactionMessageProperty IgnoreTransactionMessageProperty IgnoreTransactionMessageProperty

TransactionMessageProperty を無視するかどうかを取得または設定します。Gets or sets whether to ignore the TransactionMessageProperty.

ImpersonateCallerForAllOperations ImpersonateCallerForAllOperations ImpersonateCallerForAllOperations ImpersonateCallerForAllOperations

受信メッセージによって提供される資格情報を使用してサービスが偽装を試みるかどうかを制御する値を取得または設定します。Gets or sets a value that controls whether the service attempts to impersonate using the credentials provided by the incoming message.

ImpersonateOnSerializingReply ImpersonateOnSerializingReply ImpersonateOnSerializingReply ImpersonateOnSerializingReply

応答操作のシリアル化で偽装が使用されているかどうかを示す値を取得します。Gets a value that indicates whether impersonation is used on serializing reply operation.

InputSessionShutdownHandlers InputSessionShutdownHandlers InputSessionShutdownHandlers InputSessionShutdownHandlers

入力セッションを閉じる方法を制御するためのカスタム ハンドラーの追加に使用できる IInputSessionShutdown オブジェクトのコレクションを取得します。Gets a collection of IInputSessionShutdown objects that can be used to add a custom handler to control how input sessions are closed.

InstanceContextInitializers InstanceContextInitializers InstanceContextInitializers InstanceContextInitializers

IInstanceContextInitializer オブジェクトが最初に作成されたときにそれを検査または変更するために使用できる InstanceContext オブジェクトのコレクションを取得します。Gets a collection of IInstanceContextInitializer objects that can be used to inspect or modify an InstanceContext object when it is first created.

InstanceContextProvider InstanceContextProvider InstanceContextProvider InstanceContextProvider

IInstanceContextProvider が使用する DispatchRuntime を取得または設定します。Gets or sets the IInstanceContextProvider to be used by the DispatchRuntime.

InstanceProvider InstanceProvider InstanceProvider InstanceProvider

サービス オブジェクトの作成と破棄の制御に使用できる IInstanceProvider オブジェクトを取得または設定します。Gets or sets an IInstanceProvider object that you can use to control the creation and destruction of service objects.

MessageAuthenticationAuditLevel MessageAuthenticationAuditLevel MessageAuthenticationAuditLevel MessageAuthenticationAuditLevel

メッセージ認証成功イベントを SecurityAuditLogLocation で指定されているイベント ログに書き込むかどうかを指定する値を取得または設定します。Gets or sets a value that specifies whether successful message authentication events are written to the event log specified by SecurityAuditLogLocation.

MessageInspectors MessageInspectors MessageInspectors MessageInspectors

エンドポイントを通過するすべての受信および送信メッセージにカスタム メッセージ インスペクターを結合するために使用できる IDispatchMessageInspector オブジェクトのコレクションを取得します。Gets a collection of IDispatchMessageInspector objects that can be used to attach a custom message inspector for all incoming and outgoing messages across the endpoint.

Operations Operations Operations Operations

特定の操作の実行動作の制御に使用できる DispatchOperation オブジェクトのコレクションを取得します。Gets a collection of DispatchOperation objects that can be used to control the execution behavior of a particular operation.

OperationSelector OperationSelector OperationSelector OperationSelector

特定のメッセージの宛先 IDispatchOperationSelector の選択を制御する DispatchOperation オブジェクトを取得または設定します。Gets or sets the IDispatchOperationSelector object that controls the selection of a destination DispatchOperation for a particular message.

PreserveMessage PreserveMessage PreserveMessage PreserveMessage

メッセージが保持されるかどうかを取得または設定します。Gets or sets whether the message is preserved.

PrincipalPermissionMode PrincipalPermissionMode PrincipalPermissionMode PrincipalPermissionMode

CurrentPrincipal プロパティの設定方法を指定する値を取得または設定します。Gets or sets a value that specifies how the CurrentPrincipal property is set.

ReleaseServiceInstanceOnTransactionComplete ReleaseServiceInstanceOnTransactionComplete ReleaseServiceInstanceOnTransactionComplete ReleaseServiceInstanceOnTransactionComplete

トランザクションが正常に完了した後でサービス オブジェクトをリサイクルするかどうかを指定する値を取得または設定します。Gets or sets a value that specifies whether the service object is recycled after the transaction successfully completes.

RoleProvider RoleProvider RoleProvider RoleProvider

RoleProvider が使用するカスタム DispatchRuntime を取得または設定します。Gets or sets the custom RoleProvider that is used by the DispatchRuntime.

SecurityAuditLogLocation SecurityAuditLogLocation SecurityAuditLogLocation SecurityAuditLogLocation

監査ログの場所を取得または設定します。Gets or sets the location of the audit log.

ServiceAuthenticationManager ServiceAuthenticationManager ServiceAuthenticationManager ServiceAuthenticationManager

サービス操作の認証プロセスを管理するオブジェクトを取得または設定します。Gets or sets the object that manages an authentication process for service operations.

ServiceAuthorizationAuditLevel ServiceAuthorizationAuditLevel ServiceAuthorizationAuditLevel ServiceAuthorizationAuditLevel

監査するサービス承認イベントを制御する値を取得または設定します。Gets or sets a value that controls what service authorization events are audited.

ServiceAuthorizationManager ServiceAuthorizationManager ServiceAuthorizationManager ServiceAuthorizationManager

ServiceAuthorizationManager に関する承認検査を提供する DispatchRuntime を取得します。Gets the ServiceAuthorizationManager that provides authorization checking for the DispatchRuntime.

SingletonInstanceContext SingletonInstanceContext SingletonInstanceContext SingletonInstanceContext

IInstanceContextProvider が使用するシングルトン DispatchRuntime を取得または設定します。Gets or sets the singleton IInstanceContextProvider to be used by the DispatchRuntime.

SuppressAuditFailure SuppressAuditFailure SuppressAuditFailure SuppressAuditFailure

ログ記録処理中に発生した致命的でない例外を抑制するかどうかを指定する値を取得または設定します。Gets or sets a value that specifies whether to suppress non-critical exceptions that occur during the logging process.

SynchronizationContext SynchronizationContext SynchronizationContext SynchronizationContext

サービス操作の呼び出しに使用される同期コンテキストを取得または設定します。Gets or sets the synchronization context that is used to invoke the service operations.

TransactionAutoCompleteOnSessionClose TransactionAutoCompleteOnSessionClose TransactionAutoCompleteOnSessionClose TransactionAutoCompleteOnSessionClose

セッションが閉じるときに現在のトランザクションを自動的に完了するかどうかを指定する値を取得または設定します。Gets or sets a value that specifies whether to automatically complete the current transaction when the session closes.

Type Type Type Type

コントラクトの型を取得または設定します。Gets or sets the contract type.

UnhandledDispatchOperation UnhandledDispatchOperation UnhandledDispatchOperation UnhandledDispatchOperation

認識されないメッセージをディスパッチする操作を取得または設定します。Gets or sets the operation to which unrecognized messages are dispatched.

ValidateMustUnderstand ValidateMustUnderstand ValidateMustUnderstand ValidateMustUnderstand

ValidateMustUnderstand の値を取得または設定します。Gets or sets the value of ValidateMustUnderstand.

メソッド

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

適用対象