代码之家  ›  专栏  ›  技术社区  ›  dragonfly

wcf中的callContext

  •  7
  • dragonfly  · 技术社区  · 15 年前

    当请求到达WCF服务时使用CallContext是安全的,使用一些特定于调用的数据初始化它(例如在调用开始时使用hook:inspector/contextboundObject),然后在调用中重用它,并确保我访问的数据始终是相同的数据吗?

    谢谢,Pawel

    1 回复  |  直到 9 年前
        1
  •  7
  •   Rikin Patel    9 年前

    如果您没有从检查人员那里使用它,那么它应该是安全的,但是如果您没有使用远程处理或跨越AppDomain边界,那么只使用线程静态字段可能更简单。放一个 ThreadStaticAttribute 在静态字段上,它将是每个线程中的单独存储位置。

    如果您试图在 IDispatchMessageInspector 例如,由于这些线程将在请求的单独线程中运行,因此它将无法工作。看一看 OperationContext ,它将提供有关WCF请求的特定于调用的信息。您可以向它添加扩展,通过实现 IExtension<OperationContext> 并将它们添加到扩展属性中。 Here is a blog post 这描述了如何将自定义数据添加到OperationContext。