我有一個類,看起來像這樣:的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