我正在使用现有的代码库,并且有很多类,如:
[Serializable]
[CollectionDataContract
(
Name = "DogList",
ItemName = "Dog",
Namespace = "Namespace"
)]
public class DogList : List<Dog>
{
}
根据我在此处找到的文档:http://msdn.microsoft.com/en-us/library/aa347850.aspx不鼓励使用此属性。
编写这样的代码的用例是什么?对我来说这看起来多余。
答案 0 :(得分:1)
从我在一般使用中看到的案例中,它在那里强制执行集合上的类型。在上面的示例中,如果省略了该属性,那么运行时将序列化为ArrayOfDogList
,并且大量构造可以从ArrayOf
反序列化,就好像你有了属性一样,你拥有< / em>反序列化为DogList类型,这有点限制,并且他们说“妥协收集可互换性”。
我对你上面的例子感到有些惊讶。我见过的大多数用例都更符合
[CollectionDataContract(...)]
public class DogList : List<Dog>
{
}