【问题标题】:xml serialization and de-serialization of generic list in C#.netC#.net中通用列表的xml序列化和反序列化
【发布时间】:2011-09-17 03:33:12
【问题描述】:

我正在准备如下代码结构;

  1. WCF 服务 - 所有业务逻辑都可以在这里实现。所有服务方法都可以将输入参数作为字符串(XML 数据),并且可以返回字符串(XML 数据)或 int。

  2. 客户端网站 - ASP>具有实体层和业务逻辑层(BAL 层)的 NET 网站。

流程是这样的:

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

为此,在 BAL 层,我想创建一个实体类列表并进行 XML 序列化(列表为 XML 格式)并将其传递给 WCF 服务方法。WCF 服务方法反序列化(XML列出)。

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

【问题讨论】:

    标签: asp.net wcf


    【解决方案1】:

    你不这样做。对于 WCF 的新用户来说,这似乎是一个常见的误解。

    您定义包含您的数据的 DataContracts,将它们传递给您的 WCF 服务,然后它负责序列化/反序列化它们。

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

    【讨论】:

      【解决方案2】:

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

      您可以将此默认集合更改为列表(或链接列表,或任何其他可用的),方法是右键单击项目中为您的客户端应用程序提供的服务引用,选择“配置服务引用...”,然后选择系统.Collections.Generic.List 来自集合类型下拉菜单。

      如果您从客户端向 WCF 服务发送列表,将服务方法的参数定义为列表(如果它包含简单的 .NET 类型)就足够了,否则您需要根据另一个答案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-02
        • 2016-04-11
        • 2011-05-12
        • 2010-11-25
        • 1970-01-01
        • 2011-06-28
        • 1970-01-01
        相关资源
        最近更新 更多