我在理解如何在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