我不是在讨论会话 - 这些数据不会在请求之间保留。我有一个深度嵌套的基础构造函数,我宁愿访问这个作用域的数据,而不是通过这些长链...
TIA。
答案 0 :(得分:3)
您可以将缓存的对象公开为服务类的属性。然后,从调用链中的任何位置,您都可以使用OperationContext.Current访问此服务类。InstanceContext。GetServiceInstance()
MyServiceImplementation service = (MyServiceImplementation)OperationContext.Current.InstanceContext.GetServiceInstance();
var cachedValue = service.MyCachedValue;
假设您正在使用SingleCall实例化,而不是基于会话或单例实例化。
答案 1 :(得分:3)
我使用Extensions
的{{1}}属性(请参阅http://msdn.microsoft.com/en-us/library/ms733816.aspx) - 可通过其静态OperationContext
属性轻松访问(仅限于操作范围内) ,当然)。