我提供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调用?
答案 0 :(得分:0)
WCF服务模型为SOAP调用提供OperationContext。悬挂它是您可以访问的RequestContext,InstanceContext和SecurityContext。要获取SOAP调用的消息正文,您可以执行类似的操作。
var msg = OperationContext.Current.RequestContext.RequestMessage;
从那里,您可以通过GetBody方法访问正文。