2011-08-24 51 views
2

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

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

.NET4/VS2010

回答

3

阿方索的回答是有些的权利,但你提到你使用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 
+0

非常感谢,它正在工作! – Tom

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() 
+0

Thx alfonso,我会检查它! :) – Tom

+1

XmlSerializer不会遵守Tom提到的他使用的DataContract/DataMember属性,他需要为此使用DataContractSerializer。 –