2

提供された WSDL ファイルを使用して、サード パーティの SOAP サービスのクライアントを作成しています。WCF でこれを行う既定の方法は、svcutil を使用してローカル プロキシ クラスを生成し、WCF がサービス呼び出しへの応答をプロキシ オブジェクトに自動的に逆シリアル化するようにすることです。

ただし、目的に応じて XML と XPath で適切に動作するコードを既に確立しているため、プロキシ オブジェクトの使用には関心がなく、本体を再シリアル化するのではなく、元の形式で受信するだけです。一方で、SOAP リクエストを自分で作成するという面倒なことはしたくないので、WCF に引き続き処理してもらいたいと考えています。

svcutil の /importXmlTypes フラグを使用すると、XmlNode の配列を含むトップレベルの応答オブジェクトだけでほぼ到達できることはわかっていますが、最適には

XmlDocument SomeServiceMethod(...)

このようなことは可能ですか?

4

1 に答える 1

0

まあ、これを行うことはできますが、あまり良くありません。メッセージ インスペクターを作成して、プロキシにアタッチできます ( IClientMessageInspector. サンプル:こちら. したがって、応答をそのままの形で傍受できますが、応答がプロキシに到達するまでに逆シリアル化が発生します。

ただし、これがどのように機能するかを考えてください。すでにジョブを実行できるプロキシがありますが、手動で解析する応答 (応答) に対してのみこれを回避します。

また、サービスが更新/変更されたときに何が起こるかを考えてください。プロキシを更新するだけでなく、解析コードを変更してから、更新されたコントラクトを使用する必要があります。

とにかく、ここにカスタム WCF 動作に関する追加の読み物があります。

于 2013-01-03T17:40:22.763 に答える