【问题标题】:WCF, containers in DataContractWCF,DataContract 中的容器
【发布时间】:2009-12-01 12:05:03
【问题描述】:

我需要将一些对象容器传递给 WCF 调用

[DataContract]
class Foo
{
 // other fields omited

 [DataMember]
 public List<Foo> MyList;
}

序列化可以吗?如果不是,我有什么选择?

【问题讨论】:

  • 我的意思是如果 List MyList 将被成功序列化?

标签: c# wcf serialization datacontract


【解决方案1】:

没关系,但结果类型将是数组而不是列表。我偏爱在合同中使用数组,只是为了确保我不会尝试将它用作其他地方的列表。

【讨论】:

  • 你的意思是列表会变成数组吗?请澄清。谢谢。
  • 您可以调整代理生成器以发出数组或列表。我认为数组是默认的。
  • 将其更改为 IList 排序吗?
  • 您可以更改服务参考中的默认值。配置。见dotnet.org.za/hiltong/archive/2008/05/21/…
【解决方案2】:

即使您不应用 DataContract,它也会成功序列化。唯一的条件是序列化中所有使用的类型都有无参数的构造函数(即使是私有的也可以),例如:

List<T> - already has it.
Foo - have it by default.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-11
    • 2011-02-04
    • 2013-08-31
    • 2012-03-05
    • 1970-01-01
    相关资源
    最近更新 更多