Use*_*rol 2 .net error-handling wcf wcf-4 wcf-extensions
如果同时IParameterInspector和IErrorHandler连接到一个服务,我可以肯定IErrorHandler.HandleError()将在同一个线程在那里叫上IParameterInspector.BeforeCall()叫?
我需要这个,因为在抛出错误的情况下IParameterInspector.AfterCall()永远不会被调用,并且没有办法(据我所知)我可以获得创建的关联状态对象BeforeCall().所以我希望通过ThreadStatic在我的接口实现中有一个字段来克服这个问题:(
您可能希望使用实例上下文扩展.
InstanceContextExtension: IExtension<InstanceContext>
OperationContext.Current.InstanceContext.Extensions.Find<InstanceContextExtension>()
Run Code Online (Sandbox Code Playgroud)
可以在BeforeCall方法中添加实例上下文扩展.然后可以在AfterCall方法中检索实例上下文扩展并使用它.任何特定于操作的数据都可以放在此扩展对象中,而不是引入线程关联.