我想知道在WCF服务主机实例的实例变量中存储和引用OperationContext.Current对象是否明智。服务主机被设置为InstanceContextMode.PerCall,因此每个新的请求都有自己的实例。在WCF服务实例的实例变量中存储OperationContext.Current
我问这个问题的原因是因为WCF不保证线程的亲和力。有时WCF可以在一个线程上启动请求,并在另一个线程上结束请求。
OperationContext.Current对象存储在Thread Local Storage中。当一个新线程用于相同的操作时,WCF“传播”到新线程。
在此事件中,当WCF开始使用不同的线程时,访问存储在我的服务实例的实例变量中的OperationContext对象仍然安全吗?
使用实例变量而不是使用OperationContext.Current有什么好处? –
我们正在探索依赖注入技术,以便能够单元测试一个WCF服务。 –