我正在使用一个现有的代码库,有很多类,比如:
[Serializable] [CollectionDataContract ( Name = "DogList", ItemName = "Dog", Namespace = "Namespace" )] public class DogList : List<Dog> { }
根据我在这里找到的文件: http://msdn.microsoft.com/en-us/library/aa347850.aspx 不鼓励使用此属性。
这样写代码的用例是什么?在我看来这是多余的。
从我在一般使用中看到的案例来看,它可以在集合上强制执行类型。在上面的示例中,如果省略了属性,那么运行时将序列化为 ArrayOfDogList ,大量的构造可以从中反序列化 ArrayOf ,好像你有这个属性 有 反序列化为DogList类型,这将有点限制,正如他们所说的“损害集合的互换性”。
ArrayOfDogList
ArrayOf
[CollectionDataContract(...)] public class DogList : List<Dog> { }