代码之家  ›  专栏  ›  技术社区  ›  Richard B

以编程方式升级XML架构

  •  1
  • Richard B  · 技术社区  · 14 年前

    我可以使用XmlSerializer将我的对象图与Xml进行变形,并对给定的XElement对象进行读/写操作,但我不确定在需要更改对象图时如何升级Xml数据。

    有人遇到过这种情况吗?哪些文章证明了学习如何构建这种更新方法的最佳途径。谢谢。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Mau    14 年前

    我以前遇到过这种令人沮丧的情况。。。 我认为这不能用XmlSerializer来完成。XmlSerializer编译围绕当前类型层次结构定制的序列化例程。如果更改太多,XML将与新的类结构不兼容。

    你呢 能够 1) 创造 反映您的更改的类, 2) 将XML反序列化到旧类中, 3) 在新旧对象之间应用变形, 4) 序列化新对象, 5) 把班级的名字改成旧的, 6) 替换XML中的临时名称,

    如果您需要处理频繁的更改(或者如果您使用像当前F#one这样不利于序列化的编译器),最好的方法是编写 你自己的 XmlSerializer(可能使用Linq2XML)可以处理代码更改。