WCF上下文 - 如何从客户端代理调用引用soap数据

时间:2013-11-04 16:40:13

标签: wcf

我提供soap端点和REST端点(json / xml)。我有使用WebGet和WebInvoke属性修饰的方法。我知道我可以通过WebOperationContext.Current获取Web上下文。

但是对于soap调用,我会使用常规ASP.NET HttpContext吗?然后,如果是这样,我将如何保持两种情况?假设我有一个用WebInvoke装饰的方法用于RESTful调用,soap调用也会映射到这个吗?

示例

让我们说这两种方法都在我的“Car.svc”

假设我的REST端点用WeInvoke装饰了

public Car Create()
...

然后我有这个我会假设如果我做了一个clientproxy调用来创建并传递一个car的实例,就会点击这个方法(soap):

public Car Create(Car carToCreate)

所以我要说在这种情况下,我通过wsdl创建clientProxy vall,一旦它命中了这个方法,我假设我可以通过HttpContext对象获取请求体(soap)而不是WebOperationContext REST调用?

1 个答案:

答案 0 :(得分:0)

WCF服务模型为SOAP调用提供OperationContext。悬挂它是您可以访问的RequestContext,InstanceContext和SecurityContext。要获取SOAP调用的消息正文,您可以执行类似的操作。

var msg = OperationContext.Current.RequestContext.RequestMessage;

从那里,您可以通过GetBody方法访问正文。