WCF REST结果XML

时间:2011-08-24 23:08:59

标签: .net xml wcf rest serialization

我有一个WCF休息服务。它有一个返回对象列表的方法。对象类型设置为DataContract,它具有DataMembers。现在它工作得很好,我可以通过我的方法将对象列表作为XML。它很棒很棒。

我的问题是:在从方法返回之前,有没有办法获得结果XML?那么,在通过REST调用方法时,我可以在方法中使用完全相同的XML吗?

.NET4 / VS2010

2 个答案:

答案 0 :(得分:3)

Alfonso的回答是有点,但你提到你正在使用DataContractDataMemberXmlSerializer类不适用于数据协定。相反,你正在寻找的是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()