在C#中的通用列表的xml序列化和反序列化.net

问题描述:

我正在准备类似下面的代码结构;在C#中的通用列表的xml序列化和反序列化.net

  1. WCF服务 - 所有的业务逻辑都可以在这里实现。所有服务方法都可以将输入参数作为字符串(XML数据)并可以返回字符串(XML数据)或int。客户端网站 - ASP>具有实体层和业务逻辑层(BAL层)的NET网站。

流量是这样的:

客户网站---> BAL - >(WCF服务----> DAL层---->数据库) BAL层消耗WCF服务

为此,在BAL层,我想创建实体类的列表,并做XML序列化(清单为XML格式),并在WCF服务方法反序列化传递到WCF服务methods.other侧(XML列出)。

如何在ASP.NET和WCF中执行此操作?

你不这样做。这似乎是WCF的新用户常见的误解。

您可以定义包含数据的DataContracts,将它们传递给WCF服务,并负责对它们进行序列化/反序列化。

不要在将它们传递给服务之前,将它们序列化为XML。

WCF将自动序列化列表供您,但默认集合类型是反序列化在客户端是一个数组。

您可以通过右键单击该项目的客户端应用程序的服务引用更改此默认集合到一个列表(或链接列表,或其他任何可用),选择“配置服务引用...”,并选择从集合类型System.Collections.Generic.List下拉菜单。

如果您正在将客户端列表发送到WCF服务,那么将Service方法的参数定义为列表(如果它包含简单的.NET类型)就足够了,否则您需要将特定数据协定定义为根据其他答案。