カスタム バインディング
システムが提供するバインディングの中にサービスの要件を満たすものがない場合は、CustomBinding クラスを使用できます。 すべてのバインディングは、バインド要素の順序付き集合から作成されます。 カスタム バインディングは、一連のシステム指定のバインド要素から作成したり、ユーザー定義のカスタム バインド要素を含めたりできます。 カスタム バインド要素を使用すると、たとえば、新しいトランスポートまたはエンコーダーをサービス エンドポイントで使用できるようになります。 実際の例については、「カスタム バインディングのサンプル」を参照してください。 詳細については、「<customBinding>」を参照してください。
カスタム バインドの構築
カスタム バインドは、特定の順序で "積み重ねられている" バインド要素のコレクションから CustomBinding コンストラクターを使用して作成します。
最上位にあるのは、トランザクションのフローを可能にするオプションの TransactionFlowBindingElement クラスです。
その次にあるのは、WS-ReliableMessaging 仕様で定義されているセッションおよび順序指定のメカニズムを提供する、オプションの ReliableSessionBindingElement クラスです。 セッションは、SOAP 中継局およびトランスポート中継局を通過できます。
その次には、承認、認証、保護、機密性などのセキュリティ機能を提供する、オプションの SecurityBindingElement クラスがあります。
その次には、二重通信をネイティブでサポートしないトランスポート プロトコル (HTTP など) を使用して双方向の二重通信を可能にする、オプションの CompositeDuplexBindingElement クラスがあります。
その次には、一方向通信を提供する、オプションの OneWayBindingElement クラスがあります。
その次にあるのは、オプションのストリーム セキュリティ バインド要素で、次のいずれかになります。
その次にあるのは、必須のメッセージ エンコード バインド要素です。 独自のメッセージ エンコーダーを使用するか、次の 3 つのメッセージ エンコーディング バインディングのいずれかを使用できます。
最下位には、必須のトランスポート要素があります。 独自のトランスポートを使用するか、Windows Communication Foundation (WCF) が提供する次のトランスポート バインディング要素の 1 つを使用することができます。
各層のオプションの概要を次の表に示します。
レイヤー | Options | 必須 |
---|---|---|
トランザクション | TransactionFlowBindingElement | いいえ |
[信頼性] | ReliableSessionBindingElement | いいえ |
セキュリティ | SecurityBindingElement | いいえ |
エンコード | テキスト、バイナリ、MTOM (Message Transmission Optimization Mechanism)、カスタム | はい |
トランスポート | TCP、HTTP、HTTPS、名前付きパイプ (IPC)、ピアツーピア (P2P)、メッセージ キュー (MSMQ)、カスタム | はい |
さらに、独自のバインド要素を定義し、それを定義済みの層のいずれかの間に挿入できます。