2013-03-14 32 views
4

在使用.net 3.5的visual studio 2008中,我已經使用了一個已經自動生成Reference.cs的WSDL。 這是通過右鍵單擊我的項目中的參考並選擇「添加Web參考」C#從Visual Studio中的自動生成的Reference.cs中獲取XML SOAP響應

使用此我可以發佈到Web服務並通過我的ref和out對象獲得有效的響應。 postValues()是一個無效的方法。

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

使用WireShark我可以看到我的網絡上的請求和完整的肥皂響應。

我試圖弄清楚的是我如何在代碼中捕獲這個原始SOAP響應。 我想捕獲這個用於記錄目的,而不是單獨序列化每個ref對象。

我不能看到無論如何做到這一點,而無需修改自動生成的Reference.cs哪些id而不是做。 任何幫助,將不勝感激。

編輯:似乎沒有辦法做到這一點,我可以看到。任何人都可以證實或否認這一點?

編輯。如果有人知道,我只會再碰一次。

+0

此人的方法是否適合您? http://orbinary.com/blog/wp-content/uploads/2010/XmlWriterSpy.cs – mrtsherman 2013-04-25 16:40:26

回答

2

,可以有以下選擇:

  1. 在配置Enable tracing爲Web服務,並轉儲所有信息到文件中。如果您使用WCF而不是舊版Web服務,請參閱how to enable tracing for WCF上的此問題。
  2. Implement your own SoapExtension並插入消息處理管道以攔截並轉儲傳入/傳出的SOAP消息。我認爲鏈接artice中的例子包含TraceExtension,它確實如此。
  3. 按照您的指定修改生成的Reference.cs和轉儲傳遞的對象。
相關問題