使用调用上下文

本主题介绍一项传统技术,保留该技术是为了向后兼容现有的应用程序,不建议对新的开发使用该技术。现在应该使用  Windows Communication Foundation (WCF) 来开发分布式应用程序。

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

w61s16a1.note(zh-cn,VS.100).gif注意:
CallContext 的范围由线程确定。对于应用程序中运行的每个线程,都有一个单独的 CallContext 对象。

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

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

异步处理和 CallContext

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

另请参见

概念

远程处理示例:CallContext

其他资源

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