ServiceHost とサービス モデル レイヤーの拡張Extending ServiceHost and the Service Model Layer

サービス モデル レイヤーには、基になるチャネルから受信メッセージを取得し、そのメッセージをアプリケーション コードでのメソッド呼び出しに変換し、結果を呼び出し元に送信するという役割があります。The service model layer is responsible for pulling incoming messages out of the underlying channels, translating them into method invocations in application code, and sending the results back to the caller. サービス モデル拡張は、クライアントやディスパッチャーの機能、カスタム動作、メッセージとパラメーターの途中受信、およびその他の拡張機能に関連する実行や通信の動作と機能を変更または実装します。Service model extensions modify or implement execution or communication behavior and features involving client or dispatcher functionality, custom behaviors, message and parameter interception, and other extensibility functionality.

このセクションの内容In This Section

クライアントの拡張Extending Clients
クライアント ランタイムを途中受信して変更できるインターフェイス、およびクライアント アプリケーションのカスタム拡張を挿入できるクラスについて説明します。Describes the interfaces that can intercept and modify the client runtime, as well as the classes into which you can insert your custom extensions in client applications. たとえば、カスタム クライアント メッセージ ログやカスタム メッセージ シリアル化などを実行できます。For example, you can perform custom client message logging, perform custom message serialization, and so on.

ディスパッチャーの拡張Extending Dispatchers
サービス ランタイムを途中受信して変更できるインターフェイス、およびサービス アプリケーションのカスタム拡張を挿入できるクラスについて説明します。Describes the interfaces that can intercept and modify the service runtime, as well as the classes into which you can insert your custom extensions in service applications. たとえば、カスタム サービス ログ、サービス側でのメッセージ検証、カスタム ディスパッチなどを実行できます。For example, you can perform custom service logging, service-side message validation, custom dispatching, and so on.

拡張可能オブジェクトExtensible Objects
5 つの拡張可能オブジェクトと、IExtensibleObject<T> パターンについて説明します。Describes the five extensible objects and the IExtensibleObject<T> pattern. 拡張可能オブジェクト パターンは、既存のランタイム クラスに新しい機能を付加して拡張したり、オブジェクトに新しい状態を追加するために使用します。The extensible object pattern is used to either extend existing runtime classes with new functionality or to add new state to an object. このようなオブジェクトを実際に拡張することにより、処理の段階に応じて、共通の拡張可能オブジェクトに定義された共有の状態や機能にアクセスすることができます。Extensions, attached to one of the extensible objects, enable behaviors at very different stages in processing to access shared state and functionality attached to a common extensible object that they can access.

動作を使用したランタイムの構成と拡張Configuring and Extending the Runtime with Behaviors
WCF ランタイムで設定を変更したり拡張機能を挿入したりするには、ビヘイビアーを使用します。To change settings on or insert extensions in the WCF runtime, you use Behaviors. WCF には、調整機能、インスタンス化、およびサービスと操作に関するその他のさまざまな側面を制御するための、システムに実装済みの動作が用意されています。WCF includes system-implemented behaviors for controlling throttling, instancing, and many other aspects of services and operations. ここでは、独自のカスタム動作を作成し、プログラムおよび構成ファイルにより、作成したカスタム動作を使用できるようにする方法について説明します。This section describes how to create your own custom behaviors and how to make them available for use both programmatically and using configuration files.

ServiceHostFactory を使用したホストの拡張Extending Hosting Using ServiceHostFactory
System.ServiceModel.ServiceHostBase および System.ServiceModel.ServiceHost を拡張し、System.ServiceModel.Activation.ServiceHostFactory クラスを使用してホスト環境をカスタマイズする方法について説明します。Describes how to extend System.ServiceModel.ServiceHostBase, System.ServiceModel.ServiceHost, and use the System.ServiceModel.Activation.ServiceHostFactory classes to customize the host environment.