2012-06-03 154 views
0

我無法理解如何使用DataContractSerializer的在WCF RESTWCF DataContractSerializer的反序列化方向

我使用一個通道工廠,像這樣:

Uri uri = new Uri("http://localhost:50000/people"); 
     WebChannelFactory<IPersonService> chFactory = new WebChannelFactory<IPersonService>(uri); 

IPersonService iPerson = chFactory.CreateChannel(); 

比可以從通道直接調用通道的方法這樣

List<Person> allPeople = new List<Person>(); 
allPeople = iPerson.getAll(); 

這有什麼,我走到這一步,如何使用DataContractSerializer的,所以我可以輸出響應

MemoryStream stream = new MemoryStream(); 
<--------------- how to i read iPerson.getAll() into stream? --------->       
XmlDictionaryReader reader = XmlDictionaryReader.CreateTextReader(stream, new XmlDictionaryReaderQuotas()); 
DataContractSerializer dcs = new DataContractSerializer(typeof(Person)); 
List<Person> allpeople2 = (List<Person>)dcs.ReadObject(reader, true); 
reader.Close(); 
stream.Close(); 

我不完全確定如何將這些碎片放在一起,以使其一切工作。

回答

1

我認爲你做了一點複雜...

我將開始一個新的項目下面這個介紹頁:http://msdn.microsoft.com/en-us/magazine/dd315413.aspx

在配置上web.config中的序列化問題,你只需要在你的接口/類聲明屬性,你不必爲你的對象編寫一行序列化/反序列化代碼(除非你需要獲得定製的序列化,在你的情況下不需要)

由URL提供「 http:// localhost:50000/people「,我假設你正在尋找f或REST風格的服務,以防萬一您需要一些更高級的功能,您可以查看以下內容:https://github.com/mikeobrien/WcfRestContrib

相關問題