Xml mit XmlSerializer in ein C#-Objekt deserialisieren
In diesem Artikel wird erläutert, wie Sie mit der Klasse XmlSerializer
XML-Dokumente in Objektinstanzen deserialisieren. Angenommen, Sie haben ein XML-Dokument mit der folgenden Struktur:
<code class="language-xml"><steplist><step><name>Name1</name><desc>Desc1</desc></step><step><name>Name2</name><desc>Desc2</desc></step></steplist></code>
Um dieses XML in das entsprechende Klassenmodell zu deserialisieren, müssen Sie die folgende Klasse definieren:
<code class="language-csharp">[XmlRoot("StepList")] public class StepList { [XmlElement("Step")] public List<Step> Steps { get; set; } } public class Step { [XmlElement("Name")] public string Name { get; set; } [XmlElement("Desc")] public string Desc { get; set; } }</code>
Als nächstes können Sie XmlSerializer
zum Deserialisieren verwenden. Hier ist ein Beispieltestcode:
<code class="language-csharp">string testData = @"<steplist><step><name>Name1</name><desc>Desc1</desc></step><step><name>Name2</name><desc>Desc2</desc></step></steplist>"; XmlSerializer serializer = new XmlSerializer(typeof(StepList)); using (TextReader reader = new StringReader(testData)) { StepList result = (StepList)serializer.Deserialize(reader); }</code>
Um XML aus einer Textdatei zu deserialisieren, laden Sie die Datei in FileStream
und übergeben Sie sie an XmlSerializer
:
<code class="language-csharp">using (FileStream fileStream = new FileStream("<文件路径>", FileMode.Open)) { StepList result = (StepList)serializer.Deserialize(fileStream); }</code>
Bitte ersetzen Sie <文件路径>
durch den tatsächlichen Pfad zu Ihrer XML-Datei.
Das obige ist der detaillierte Inhalt vonWie deserialisiere ich XML mit XmlSerializer in C#-Objekte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!