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 Cookie 范围 | 
|---|---|---|---|
| BasicHttpBinding | 不适用 | ChannelFactory | ChannelFactory | 
| BasicHttpContextBinding | true | 通道 | 通道 | 
| BasicHttpContextBinding | false | 对于每个消息(由应用程序显式管理) | 通道 |