我有一个类,看起来像这样:的XML C#反序列化过程中改变一个元素的名称
[XmlType(TypeName = "rootType")]
public class myClass
{
public Class1 class1;
public Class2 class2;
[XmlType(TypeName = "type1")]
public class class1
{ ... class1 definition ...}
[XmlType(TypeName = "type2")]
public class class2
{ ... class1 definition ...}
}
当我序列化,生成的XML将
<rootType>
<class1>
... some stuff
<class1/>
<class2>
... some stuff
<class2/>
<rootType/>
然而,我的问题就在这里是这些xmltype装饰被添加到类中,这意味着在以前的版本(客户使用)中,xml看起来像
<myClass>
<type1>
... some stuff
<type1/>
<type2>
... some stuff
<type2/>
<myClass/>
有没有一种方法可以控制反序列化过程(或任何其他解决此问题的方法),如果可能,并且能够使用这些XmlType装饰将此xml反序列化为myClass?
您可以转换旧的xml,并将其提供给您的新的反序列化器。这可能是最简单的。 – Rook
@Rook,我仅限于不改变旧的xml – Santi
但xml如何不可变形?您可以在第一次加载文件时在内存中执行此操作,或者可以将其转换为临时文件并加载该文件。 – Rook