如何使类反序列化为不同的名称

时间:2012-01-15 23:34:20

标签: c# .net xml xmlserializer

例如:

<apple />

将序列化为一个名为“apple”的类。但是,如果我想将该类称为“Dragon”,它将不会序列化(这是有道理的)。我想知道如何标记“Dragon”,以便当XmlSerializer看到它时,它知道“Dragon”与

相同

2 个答案:

答案 0 :(得分:8)

假设Dragon至少定义了apple所属的属性和字段的超集,那么competent_tech的答案是合适的,尽管我认为你的问题实际上是在询问:

[System.Xml.Serialization.XmlType("apple")]
public class Dragon

如果Dragon apple兼容,那么您最好在类型之间执行显式转换。假设您的应用程序知道appleDragon的定义,可以通过将apple流反序列化为apple对象,将属性映射到新Dragon来实现。 1}} object,然后序列化Dragon对象。

答案 1 :(得分:5)

您可能希望将System.Xml.Serialization.XmlTypeAttribute添加到班级。

[System.Xml.Serialization.XmlType("Dragon")]
public class apple