代码之家  ›  专栏  ›  技术社区  ›  John Farrell

CollectionDataContractAttribute的用例?

  •  0
  • John Farrell  · 技术社区  · 15 年前

    我正在使用一个现有的代码库,有很多类,比如:

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

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

    这样写代码的用例是什么?在我看来这是多余的。

    1 回复  |  直到 15 年前
        1
  •  1
  •   jasper johnz    15 年前

    从我在一般使用中看到的案例来看,它可以在集合上强制执行类型。在上面的示例中,如果省略了属性,那么运行时将序列化为 ArrayOfDogList ,大量的构造可以从中反序列化 ArrayOf ,好像你有这个属性 反序列化为DogList类型,这将有点限制,正如他们所说的“损害集合的互换性”。

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