我有一个WCF休息服务。它有一个返回对象列表的方法。对象类型设置为DataContract,它具有DataMembers。现在它工作得很好,我可以通过我的方法将对象列表作为XML。它很棒很棒。
我的问题是:在从方法返回之前,有没有办法获得结果XML?那么,在通过REST调用方法时,我可以在方法中使用完全相同的XML吗?
.NET4 / VS2010
答案 0 :(得分:3)
Alfonso的回答是有点,但你提到你正在使用DataContract
和DataMember
。 XmlSerializer
类不适用于数据协定。相反,你正在寻找的是DataContractSerializer
。使用它非常相似,但看起来像这样:
DataContractSerializer serializer = new DataContractSerializer(typeof(YourResultType));
StringBuilder stringBuilder = new StringBuilder();
using(XmlWriter xmlWriter = XmlWriter.Create(stringBuilder))
{
serializer.WriteObject(xmlWriter, someInstanceOfYourResultType);
}
// use stringBuilder.ToString() to get the XML
答案 1 :(得分:1)
您可以使用XmlSerializer在返回之前将结果保存为xml字符串。
XmlSerializer ser = new XmlSerializer(typeof(YourResultType));
StringBuilder sb = new StringBuilder();
StringWriter sw = new System.IO.StringWriter(sb);
ser.Serialize(sw, yourResult);
// Use sb.ToString()