Ich habe eine Klasse, die wie folgt aussieht:Ändern eines Namens des Elements bei der Deserialisierung von 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 ...}
}
Als ich es serialisiert werden, würde die resultierende xml
<rootType>
<class1>
... some stuff
<class1/>
<class2>
... some stuff
<class2/>
<rootType/>
jedoch sein, mein Problem hier ist, dass diese xmltype-Dekorationen gerade der Klasse hinzugefügt wurden, was bedeutet, dass in früheren Versionen (welche Clients verwenden) die XML-Datei ungefähr so aussieht wie
<myClass>
<type1>
... some stuff
<type1/>
<type2>
... some stuff
<type2/>
<myClass/>
Gibt es eine Möglichkeit, dass ich den Deserialisierungsprozess (oder jede andere Möglichkeit, die das löst), wenn möglich, kontrollieren kann und dieses XML mit diesen XmlType-Dekorationen zu myClass deserialisieren kann?
Sie könnten einfach das alte XML transformieren und es in Ihren neuen Deserialiser einspeisen. Das ist wahrscheinlich am einfachsten. – Rook
@Rook, ich bin darauf beschränkt, das alte XML nicht zu transformieren – Santi
Aber wie kann XML untransformierbar sein? Sie können es im Speicher ausführen, wenn Sie die Datei zum ersten Mal laden, oder Sie können es in eine temporäre Datei umwandeln und diese laden. – Rook