【问题标题】:XmlDeserialization after renaming the classes involved重命名所涉及的类后的 XmlDeserialization
【发布时间】:2011-02-16 20:26:47
【问题描述】:

我在数据库中有一堆 xml 序列化对象。

但是,我重构并重命名了所涉及的类,因此从数据库中反序列化很困难。

我认为通过在重命名的类顶部添加术语 [XmlRoot("DB_Class_Name")] 可以解决问题,但似乎没有。

有没有办法使用[XmlRoot][XmlElement] 等标签来解决问题,而无需将我的类重命名为它们的旧类名,也无需编写特殊的反序列化函数?

此外,在使用 xmldeserializaiton 和 [XmlRoot] 之类的标签时,是否有任何关于幕后发生的事情的好资料?

【问题讨论】:

    标签: c# xml xml-deserialization


    【解决方案1】:

    首先,[XmlRoot] 等不是标签,它们是属性。

    其次,[XmlRoot] 仅在该类用作文档的根元素时才会影响该类。当该类的实例用作子类或其他后代时,它没有影响。

    在类上使用[XmlType],或在属于该类类型的属性上使用[XmlElement]

    【讨论】:

      猜你喜欢
      • 2015-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-06
      • 2021-10-30
      • 2016-08-10
      • 1970-01-01
      相关资源
      最近更新 更多