我通过实现在 WCF 中实现了一个消息检查器IDispatchMessageInspector
。
在这个方法上设置一个断点......
public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext)
{
// Impementation
}
...我可以看一下request
物体,看看里面有什么。
显然我对 WCF 的理解不够,因为无论我使用什么端点绑定(basichttp、nettcp 和 netpipe),内部的消息总是以 SOAP 格式表示,例如
<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">
<s:Header>
-- headers --
</s:Header>
<s:Body>
-- body --
</s:Body>
</s:Envelope>
这是因为对请求对象执行 .ToString() 仅代表 SOAP 格式的消息吗?
我想象使用另一种协议,例如 netTcp 会导致不同的消息负载。
还可以说我想以 JSON 格式表示我的数据,我将如何去做呢?或者我最终会在 SOAP 信封中使用 JSON 格式的数据结构吗?