Share via


IContextManager.Enabled プロパティ

定義

コンテキスト管理が有効にされたかどうかを示す値を取得または設定します。

public:
 property bool Enabled { bool get(); void set(bool value); };
public bool Enabled { get; set; }
member this.Enabled : bool with get, set
Public Property Enabled As Boolean

プロパティ値

コンテキストが有効な場合は true、それ以外の場合は false

注釈

コンテキスト管理が有効な場合、コンテキスト チャネルはその有効期間中、コンテキストをキャッシュします。 コンテキストは、IContextManager メソッドを呼び出して、GetContext チャネル プロパティ経由でチャネルから取得できます。 チャネルを開く前に、チャネル プロパティで SetContext メソッドを呼び出して、事前にコンテキストで初期化できます。 チャネルは一度コンテキストで初期化すると、リセットできません。

このモードのインバリアントを次に示します。

  • チャネルを開いた後に SetContext を呼び出すと、InvalidOperationException がスローされます。

  • 送信メッセージで ContextMessageProperty を使用してコンテキストを送信しようとすると、InvalidOperationException がスローされます。

  • コンテキストを持つサーバーからメッセージを受信する場合に、チャネルが既にコンテキストで初期化されていると、ProtocolException がスローされます。 コンテキストを明示的に設定せずにチャネルを開いている場合は、サーバーから初期コンテキストを受信できます。

  • 受信メッセージの ContextMessageProperty は常に null です。

コンテキスト管理が有効でない場合、コンテキスト チャネルはコンテキストを管理しません。 コンテキストの取得、管理、および適用は、ContextMessageProperty を使用してアプリケーションで行う必要があります。 GetContext チャネル プロパティを使用して SetContext または IContextManager を呼び出そうとすると、InvalidOperationException が発生します。

コンテキスト HTTP クッキーを除くすべての HTTP クッキーはチャネル レベルで処理されます。 コンテキスト HTTP クッキーはアプリケーション レベルで管理されます。 これは、チャネルを共有することによって ContextMessageProperty の対象となっているさまざまなインスタンスと通信するときに予期しない結果を発生させる可能性があります。 次の表は、Enabledtrue または false に設定された場合、HTTP クッキーがどのような影響を受けるかを示しています。

バインド IContextManager.Enabled 値 コンテキスト HTTP クッキーのスコープ 他の HTTP クッキーのスコープ
BasicHttpBinding 該当なし ChannelFactory ChannelFactory
BasicHttpContextBinding true チャネル チャネル
BasicHttpContextBinding false 各メッセージ別 (アプリケーションで明示的に管理) チャネル

適用対象