ものがたり(旧)

atsushieno.hatenablog.com に続く

最後に、まだ不明なもの

WebHttpBindingを用いた一連の処理の流れは、以上の通りになるが、僕がまだ解いていないパズルがある。

  • WebOperationContextのOutgoingRequest / IncomingResponseがどの場面で使用できるのだろうか。
  • WebHttpBehaviorにはGetRequestDispatchFormatter()と GetReplyDispatchFormatter()があるが、DispatchOperationに設定できる IDispatchOperationFormatterは1つだけである(Formatterプロパティ)。これらはどう使い分けられているのか。 IClientMessageFormatterも同様である。

他にもあったかもしれないがとりあえず思い出せない。分かったらここに追記することにする。

2009-09-27追記: 前者は、サービス側ではなくクライアント側からHTTPリクエスト等のプロパティを操作したりHTTPレスポンス等のプロパティを参照したりするために存在している。後者は、単純に、それぞれのformatterをマージしたIDispatchMessageFormatterやIClientMessageFormatterを作って、それらのSerializeRequest/DeserializeRequest/SerializeReply/DeserializeReplyの各メソッドで、それらを使い分けていると考えれば解決だ。