代码之家  ›  专栏  ›  技术社区  ›  blitzkriegz

XML序列化在.NET中失败的方案

  •  5
  • blitzkriegz  · 技术社区  · 17 年前

    我想知道.NET中最常见的XML序列化失败的场景。

    6 回复  |  直到 15 年前
        1
  •  4
  •   Marc Gravell    17 年前

    我主要考虑的是 XmlSerializer 在这里:

    • 它仅限于树型数据;不能处理完整的对象图
    • 它只限于公共成员,在公共课上
    • 它真的不能做太多 object 成员
    • 它在仿制药方面有一些弱点
    • 与许多序列化程序一样,它不会触及集合上的实例属性(首先是错误的做法)
    • 对于大型数据(尤其是性能方面),XML并不总是一个好的选择。
    • 需要公共的无参数构造函数

    DataContractSerializer 解决了其中一些问题,但有其自身的局限性:

    • 它不能处理属性中的值
    • 需要.NET 3.0(因此在2.0中使用不多)
        2
  •  3
  •   Community Mohan Dere    9 年前

    无法轻松序列化泛型集合。

    另一个问题: C# XML Serialization Gotchas

        3
  •  1
  •   Sebastian    17 年前

    根据序列化程序的不同,循环引用可能不起作用

        4
  •  1
  •   Jeremy    15 年前

    使用shadows关键字还破坏了我的序列化和反序列化,因为隐藏会导致该属性的新实现存在,使其与正确的重建不兼容。仅当要为子类重新键入特定的时才使用重载。

        5
  •  0
  •   Anton Gogolev    17 年前

    TimeSpan 对象不可序列化。 IDictionary -实现类型也不可序列化(尽管它们 可以 通过一些手动按摩进行序列化)。

        6
  •  0
  •   Dmitry Ornatsky    17 年前

    Afaik,标记为[已过时]的类自.NET 2.0以来未被XmlSerializer序列化。