使用调用上下文

通过调用上下文,远程处理客户端和远程对象可以共享信息,而不用将该信息作为参数或返回值来显式传递。 CallContext 类提供了一个字典,此字典可包含任意数目的标记为可序列化的对象,并能实现 ILogicalThreadAffinative 接口。 通过调用 SetData,可向 CallContext 中添加对象。 通过调用 GetData,可从 CallContext 中检索对象。 在应用程序执行期间,可以随时向 CallContext 中添加对象。

Note注意:

CallContext 的范围由线程确定。 对于应用程序中运行的每个线程,都有一个单独的 CallContext 对象。

有关演示 CallContext 对象的用法的示例,请参见远程处理示例:CallContext

执行远程调用时,会在消息(IMessage 实现)中将 CallContext 对象作为“__CallContext”属性传递。 当“__CallContext”属性通过消息接收器链时,消息接收器可以在该属性中添加和检索对象。

异步处理和 CallContext

BeginInvoke 方法会向服务器传递 CallContext。 调用 EndInvoke 方法时,CallContext 中包含的数据将被复制回调用了 BeginInvoke 的线程中。

请参见

概念

远程处理示例:CallContext

其他资源

CallContext 和直接远程处理
高级远程处理

Footer image

版权所有 (C) 2007 Microsoft Corporation。保留所有权利。