重命名所涉及的类后的XmlDeserialization

时间:2011-02-16 20:26:47

标签: c# xml xml-deserialization

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

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

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

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

此外,使用xmldeserializaiton和[XmlRoot]之类的标签时,有什么好的消息来源吗?

1 个答案:

答案 0 :(得分:3)

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

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

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