CollectionDataContractAttribute的用例?

时间:2010-11-05 15:57:09

标签: c# wcf

我正在使用现有的代码库,并且有很多类,如:

[Serializable]
[CollectionDataContract
(
    Name = "DogList",
    ItemName = "Dog",
    Namespace = "Namespace"
)]
public class DogList : List<Dog>
{
}

根据我在此处找到的文档:http://msdn.microsoft.com/en-us/library/aa347850.aspx不鼓励使用此属性。

编写这样的代码的用例是什么?对我来说这看起来多余。

1 个答案:

答案 0 :(得分:1)

从我在一般使用中看到的案例中,它在那里强制执行集合上的类型。在上面的示例中,如果省略了该属性,那么运行时将序列化为ArrayOfDogList,并且大量构造可以从ArrayOf反序列化,就好像你有了属性一样,你拥有< / em>反序列化为DogList类型,这有点限制,并且他们说“妥协收集可互换性”。

我对你上面的例子感到有些惊讶。我见过的大多数用例都更符合

[CollectionDataContract(...)]
public class DogList : List<Dog> 
{ 
}