ContextBindingElement クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
バインディング要素のコンテキストの一部として保護レベルと交換メカニズムを提供し、チャネル リスナーとファクトリを構築する機能を提供します。
public ref class ContextBindingElement : System::ServiceModel::Channels::BindingElement, System::ServiceModel::Channels::IContextBindingElement, System::ServiceModel::Description::IPolicyExportExtension
public class ContextBindingElement : System.ServiceModel.Channels.BindingElement, System.ServiceModel.Channels.IContextBindingElement, System.ServiceModel.Description.IPolicyExportExtension
type ContextBindingElement = class
inherit BindingElement
interface IPolicyExportExtension
interface IContextBindingElement
Public Class ContextBindingElement
Inherits BindingElement
Implements IContextBindingElement, IPolicyExportExtension
- 継承
- 実装
注釈
ContextBindingElementを使用すると、ユーザーはコンテキスト交換プロトコルを管理するために、サービスのバインドに要素を追加できます。 ContextBindingElementは、通常、信頼性、セキュリティ、およびトランスポート バインド要素の上に積み重ねられます。 ContextBindingElementは構成オプションを必要とせず、IRequestChannel、IRequestSessionChannel、およびIDuplexSessionChannel用のチャネル ファクトリを作成できます。 また、 IReplyChannel、 IReplySessionChannel、 IDuplexSessionChannel用のチャネル リスナーを作成することもできます。 コンテキスト チャネルはチャネル インターフェイスを変更しません。基になるチャネル スタックは、要求されたチャネルの形状とセッション機能をサポートする必要があります。
チャネル リスナーとファクトリは、受信メッセージと送信メッセージの処理に使用されるチャネル スタックの一部を構築するために使用されます。
注
セッション ベースのバインドが ContextBindingElement で作成され、 SessionMode = NotAllowedを指定するコントラクトと共に使用される場合は、チャネルが作成されたときに"チャネルを開いた後にチャネル コンテキスト管理を有効または無効にすることはできません" というテキストで InvalidOperationException がスローされます。セッション ベースのチャネルを使用しない場合は、 SessionMode を Allowed または Required に設定する必要があります。
カスタム バインドを作成する場合は、信頼性とセキュリティ バインド要素を追加する前に、カスタム バインドのBindingElementCollectionにContextBindingElementを追加することをお勧めします (存在する場合)。 そうしないと、サービスで次のメッセージが表示された ProtocolException がスローされる可能性があります。
"コンテキスト チャネルは、チャネルでキャッシュされている現在のコンテキストと一致しないコンテキストを含むメッセージを受信しました。 チャネル プロパティ 'IContextManager.Enabled' を false に設定して、サービスが最初にコンテキスト管理を設定または無効にした後にコンテキストが変更されないようにします。"
コンストラクター
| 名前 | 説明 |
|---|---|
| ContextBindingElement() |
ContextBindingElement クラスの新しいインスタンスを初期化します。 |
| ContextBindingElement(ProtectionLevel, ContextExchangeMechanism, Uri, Boolean) |
指定した保護レベル、コンテキスト交換メカニズム、クライアント コールバック アドレス、およびコンテキスト管理が有効かどうかを指定する値を使用して、 ContextBindingElement クラスの新しいインスタンスを初期化します。 |
| ContextBindingElement(ProtectionLevel, ContextExchangeMechanism, Uri) |
指定した保護レベル、コンテキスト交換メカニズム、およびクライアント コールバック アドレスを使用して、 ContextBindingElement クラスの新しいインスタンスを初期化します。 |
| ContextBindingElement(ProtectionLevel, ContextExchangeMechanism) |
指定したレベルの保護と交換メカニズムを使用して、 ContextBindingElement クラスの新しいインスタンスを初期化します。 |
| ContextBindingElement(ProtectionLevel) |
指定したレベルの保護を使用して、 ContextBindingElement クラスの新しいインスタンスを初期化します。 |
プロパティ
| 名前 | 説明 |
|---|---|
| ClientCallbackAddress |
バインディング要素のクライアント コールバック アドレスを取得または設定します。 |
| ContextExchangeMechanism |
バインディング要素のコンテキストの通信に使用する交換メカニズムを取得または設定します。 |
| ContextManagementEnabled |
コンテキスト管理が有効かどうかを示す値を取得または設定します。 |
| ProtectionLevel |
コンテキストからバインディング要素の保護レベルを取得または設定します。 |
メソッド
| 名前 | 説明 |
|---|---|
| BuildChannelFactory<TChannel>(BindingContext) |
指定したコンテキストに対して指定した種類のチャネルを作成するチャネル ファクトリ スタックをクライアント上に構築します。 |
| BuildChannelListener<TChannel>(BindingContext) |
指定したコンテキストに対して指定した種類のチャネルを受け入れるチャネル リスナー スタックをクライアント上に構築します。 |
| CanBuildChannelFactory<TChannel>(BindingContext) |
現在のバインディング要素が、指定した種類のチャネルとコンテキストのファクトリを構築できるかどうかを示す値を返します。 |
| CanBuildChannelListener<TChannel>(BindingContext) |
現在のバインディングが、指定した種類のチャネルとコンテキストのリスナーを構築できるかどうかを示す値を返します。 |
| Clone() |
現在のオブジェクトから初期化された新しい ContextBindingElement オブジェクトを作成します。 |
| Equals(Object) |
指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
| ExportPolicy(MetadataExporter, PolicyConversionContext) |
カスタム ポリシー アサーションをバインディング要素のコンテキストに書き込みます。 |
| GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
| GetProperty<T>(BindingContext) |
チャネル スタック内の適切なレイヤーから、指定したコンテキストを持つ型指定されたオブジェクトを返します。 |
| GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
| MemberwiseClone() |
現在の Objectの簡易コピーを作成します。 (継承元 Object) |
| ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |