OperationContext上的Current,InstanceContext RequestContext有什么区别?

Adr*_*ian 5 c# wcf

我正在查看System.ServiceModel.OperationContext

http://msdn.microsoft.com/en-us/library/system.servicemodel.operationcontext(v=vs.110).aspx

我试图理解之间的区别:

OperationContext.Current
OperationContext.InstanceContext 
OperationContext.RequestContext
Run Code Online (Sandbox Code Playgroud)

在我的测试中,它们似乎是一样的.我错过了什么?

Mab*_*lah 5

好吧,显而易见的答案是它们并不完全相同。从高层次上讲,它们是三种不同的类型,它们不是从公共接口继承的。更具体地说,它们具有彼此不同的属性。但是从您询问问题的方式来看,您似乎也对它们各自的用途感兴趣。

在查看msdn文档时,我出于自己的想法从评论中提出了一些要点,其中涉及到为何具有每种上下文。

Current(OperationContext):“操作上下文用于访问双工服务中的回调通道,存储跨操作部分的额外状态数据,访问传入消息头和属性以及添加传出消息头和属性。”

RequestContext:“ RequestContext对象是进入的请求和发出的答复之间的链接”,该对象实际上专注于使您可以访问和控制服务中的请求和答复。

InstanceContext:这里没有msdn评论,但是看一下它,您可以更深入地控制通信基础结构的状态。即通信通道,主机和扩展。

这是我为每篇文章寻找的特定MSDN文章

OperationContext:http : //msdn.microsoft.com/zh-CN/library/system.servicemodel.operationcontext(v=vs.110).aspx

RequestContext:http : //msdn.microsoft.com/zh-CN/library/system.servicemodel.channels.requestcontext( v=vs.110) .aspx

InstanceContext:http : //msdn.microsoft.com/zh-cn/library/system.servicemodel.instancecontext( v= vs.110).aspx