IContextManager.Enabled 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定值,這個值表示內容管理是否已啟用。
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 Cookie 之外,所有 HTTP Cookie 都在通道層級處理。 內容 HTTP Cookie 在應用程式層級管理。 當共用通道以便與 ContextMessageProperty 所定的不同目標執行個體進行通訊時,這個做法可能會產生非預期的結果。 下表說明當 Enabled 設為 true
或 false
時,HTTP Cookie 受影響的方式。
繫結 | IContextManager.Enabled 值 | 內容 HTTP Cookie 範圍 | 其他 HTTP Cookies 範圍 |
---|---|---|---|
BasicHttpBinding | n/a | ChannelFactory | ChannelFactory |
BasicHttpContextBinding | true | 管道 | 管道 |
BasicHttpContextBinding | false | 對每個訊息 (由應用程式明確管理) | 管道 |