定义DataContract时如何使用集合?

时间:2011-02-17 09:43:27

标签: wcf

我想'发送'包含数字(双)的集合。 我尝试将数组添加到我的DataContract但它失败了(通过异常......当我注意数组类型时它的工作正常)。

我该怎么做?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

集合序列化仅在合同中的集合是具体集合(即不是接口)并且可序列化(使用Serializable属性注释)时自动发生。如果是这种情况,只要集合包含Add操作,WCF就可以自动将集合序列化为集合类型的数组。这适用于内置的.NET集合以及任何实现IEnumerable或IEnumerable接口的自定义集合;只要它们是可序列化的并且具有Add操作,它们就可以自动序列化为数组。

如果您的集合不符合这些约束,请指定CollectionDataContractAttribute。

[CollectionDataContract(Name = "MyCollectionOf{0}")]