2012-02-08 46 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