C# XML-Deserialisierung: Eine vollständige Anleitung
Die Deserialisierung von XML-Daten in Objekte ist ein entscheidender Schritt beim Zugriff auf und der Verarbeitung strukturierter Informationen in einer Vielzahl von Anwendungen. In diesem Artikel erfahren Sie, wie Sie Klassen für eine erfolgreiche XML-Deserialisierung erstellen.
Erstellen Sie Klassen für die Deserialisierung
Betrachten Sie das folgende XML-Beispiel:
<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 zu deserialisieren, definieren Sie die folgende Klasse:
<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>
Beispielverwendung
Der folgende Testcode demonstriert den Deserialisierungsprozess:
<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>
Aus Datei laden
Wenn die XML-Daten in einer Datei gespeichert sind, können sie mit FileStream deserialisiert werden:
<code class="language-csharp">using (FileStream fileStream = new FileStream("<你的文件路径>", FileMode.Open)) { StepList result = (StepList)serializer.Deserialize(fileStream); }</code>
Indem Sie diese Richtlinien befolgen und die bereitgestellten Beispiele verwenden, können Sie XML-Daten effizient deserialisieren und als Objekte in Ihrer Anwendung verarbeiten.
Das obige ist der detaillierte Inhalt vonWie deserialisiere ich XML-Daten effektiv in C#-Objekte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!