0

我无法理解如何在 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();

到目前为止,这有我所知道的如何使用 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();

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

4

1 回答 1

1

我觉得你说的有点复杂...

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

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

通过提供“http://localhost:50000/people”的 url,我假设您正在寻找 RESTful 服务,所以以防万一您需要一些更高级的功能,您也可以查看:https://github。 com/mikeobrien/WcfRestContrib

于 2012-06-03T21:53:35.723 回答