【发布时间】:2017-06-02 19:57:20
【问题描述】:
我有一个如下所示的课程:
[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,我只限于不改造旧xml
-
但是 xml 怎么可能是不可转换的呢?您可以在首次加载文件时在内存中执行此操作,也可以将其转换为临时文件并加载。
标签: c# xml xml-deserialization xmltype typename