2012-02-08 26 views
1

我有一個.NET Web服務,它返回一個對象,我得到一個XML響應。我正在嘗試調試,因爲響應在一臺機器上接收了正確的XML,但沒有在另一臺機器上接收。打印將要從Web服務返回的XML

我想在Web服務端的return語句之前打印將要從Web服務返回的XML。有沒有辦法做到這一點?

[WebGet(UriTemplate = MY_URI_TEMPLATE)] 
public MyReturnObject DoUpdate(string myParam) 
{ 
    ... 
    MyReturnObject retVal = new MyReturnObject(myParam) 

    //I want to print the XML that is going to be returned for MyReturnObject here 

    return retVal; 
} 

回答

1

如何使用DataContractSerializer。沿着這些線路

MyReturnObject retVal = new MyReturnObject(myParam) 
var serializer = new DataContractSerializer(retVal.GetType()); 

using (var xmlData = new StringWriter()) 
using (var writer = XmlWriter.Create(xmlData)) 
{ 
    serializer.WriteObject(writer, retVal); 
    Console.WriteLine(xmlData.ToString()); 
} 
+0

-1東西使用'新的XmlTextWriter()',而不是'XmlWriter.Create()' – 2012-02-08 17:09:57

+0

@JohnSaunders好一點。我已經更新了答案。 – Garett 2012-02-08 18:52:31

+0

差不多:'XmlWriter.Create',而不是'XmlTextWriter.Create'。這是同樣的事情,只是調用派生類的靜態方法並不那麼酷。 – 2012-02-08 19:15:23