4

.net 3.5 を使用する Visual Studio 2008 では、Reference.cs を自動的に生成した WSDL を使用しました。これは、私のプロジェクトで参照を右クリックし、[Web 参照の追加] を選択することによって行われました。

これを使用して、Web サービスに投稿し、ref オブジェクトと out オブジェクトを介して有効な応答を取得できます。postValues() は void メソッドです。

webService.postValues(ref value1, ref value2, out value3);

WireShark を使用すると、ネットワーク上で要求と完全な SOAP 応答を確認できます。

私が理解しようとしているのは、コードでこの生の SOAP 応答をどのようにキャプチャできるかということです。ロギング目的でこれをキャプチャしたいと思いますが、各参照オブジェクトを個別にシリアル化したくありません。

とにかく、自動生成された Reference.cs を変更せずにこれを行うことはできません。どんな助けでも大歓迎です。

編集:私が見ることができるこれを行う方法はないようです。他の誰かがこれを確認または否定できますか?

編集。誰かが知っているかどうかを確認するために、これをもう一度だけぶつけます。

4

1 に答える 1

2

次のオプションがあります。

  1. config で Web サービスのトレースを有効にし、すべての情報をファイルにダンプします。従来の Web サービスの代わりに WCF を使用している場合は、WCF のトレースを有効にする方法に関するこの質問を参照してください。
  2. 独自の SoapExtensionを実装し、メッセージ処理パイプラインにプラグインして、着信/発信 SOAP メッセージをインターセプトしてダンプします。リンクされた記事の例には、まさにそれを行うTraceExtensionが含まれていると思います。
  3. 指定したとおりに、生成された Reference.cs を変更し、渡されたオブジェクトをダンプします。
于 2013-04-25T20:01:48.993 に答える