2012-06-03 107 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

相关问题