IDispatchMessageInspector
を実装してWCFでメッセージインスペクタを実装しました。このメソッドにブレークポイントを置く WCFのメッセージがSOAP形式のように見えるのはなぜですか?
public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext)
{
// Impementation
}
...私の中にあるものを見るためにrequest
オブジェクトを見ることができます。
私が使用しているエンドポイントバインディング(basichttp、nettcp、netpipe)は常に内部でメッセージがSOAP形式で表示されるため、明らかにWCFは十分理解できません。
<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形式で表現したいとします。これを行うにはどうすればいいですか?それとも、JSON形式のデータ構造がSOAPエンベロープの内部にあるのでしょうか?