打印将要从Web服务返回的XML
问题描述:
我有一个.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;
}
答
如何使用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());
}
-1东西使用'新的XmlTextWriter()',而不是'XmlWriter.Create()' – 2012-02-08 17:09:57
@JohnSaunders好一点。我已经更新了答案。 – Garett 2012-02-08 18:52:31
差不多:'XmlWriter.Create',而不是'XmlTextWriter.Create'。这是同样的事情,只是调用派生类的静态方法并不那么酷。 – 2012-02-08 19:15:23