我什么时候应该在WCF服务中使用OperationContextScope?

时间:2010-03-18 14:40:20

标签: c# service wcf

我目前正在开发一种WCF服务,该服务可以与其他服务联系,以便在其一些操作中提交信息。第二个服务的代理是通过强类型ProxyFactory<T>类生成的。我没有遇到任何问题,但听到我在拨打电话时应该做以下事情:

using (new OperationContextScope((IContextChannel)_service))
     _service.Send(message);

所以我的问题是:什么时候创建这个新的OperationContextScope是合适的,为什么?

谢谢!

1 个答案:

答案 0 :(得分:15)

如果您正在使用回调,或者您想要修改邮件或标题,则需要使用OperationContextScope。您的服务可能需要在调用其他服务时修改传出标头。

当您建立OperationContextScope时,您可以:

  1. 访问和修改传入和传出的邮件标题及其他属性。
  2. 访问运行时,包括调度程序,主机,通道和扩展。
  3. 访问其他类型的上下文,例如安全性,实例和请求上下文。
  4. 访问与OperationContext对象关联的频道或(如果频道实施System.ServiceModel.Channels.ISession)相关频道的会话标识符。
  5. 您调用的其他服务是基于会话的服务吗?您可能需要查看其示例客户端代码或文档(如果有)。