WCF 数据协定序列化程序反序列化方向



我在理解如何在WCF REST中使用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();

到目前为止,我得到了如何使用数据合同序列化程序,以便我可以输出响应

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();

我不确定如何将这些部分放在一起以使其全部正常工作。

我认为你让它有点复杂......

我将在此介绍页面之后开始一个新项目:http://msdn.microsoft.com/en-us/magazine/dd315413.aspx

当您在 web.config 上配置序列化问题时,您只需在接口/类上声明属性,而不必为对象编写一行序列化/反序列化代码(除非您需要获得自定义序列化,在您的情况下不需要)

通过提供的"http://localhost:50000/people"网址,我假设您正在寻找RESTful服务,因此,如果您需要一些更高级的功能,您也可以查看它:https://github.com/mikeobrien/WcfRestContrib

最新更新