Heim >Backend-Entwicklung >C++ >Wie deserialisiere ich XML in eine Liste von Objekten in C#?
C# XML-Deserialisierung zur Objektliste
In einigen Fällen müssen Sie XML möglicherweise in ein strukturiertes Datenformat deserialisieren, beispielsweise in eine Liste von Objekten. In diesem Artikel werden die Möglichkeiten und notwendigen Schritte untersucht, um diese spezifische Deserialisierung zu erreichen.
Angenommen, das folgende XML muss in List<User>
konvertiert werden:
<code class="language-xml"><?xml version="1.0"?><user_list><user><id>1</id><name>Joe</name></user><user><id>2</id><name>John</name></user></user_list></code>
Um diese Konvertierung zu implementieren, können Sie die Klasse XmlSerializer
verwenden. Um sich jedoch an die Struktur von XML anzupassen, muss es leicht modifiziert werden. Anstatt direkt nach List<User>
zu deserialisieren, verwenden Sie eine Zwischenklasse, die eine Liste enthält.
Das Folgende ist eine Beispielimplementierung einer Wrapper-Klasse:
<code class="language-csharp">[XmlRoot("user_list")] public class UserList { public UserList() { Items = new List<User>(); } [XmlElement("user")] public List<User> Items { get; set; } }</code>
Mit der Klasse UserList
wird der Deserialisierungsprozess sehr einfach:
<code class="language-csharp">XmlSerializer ser = new XmlSerializer(typeof(UserList)); UserList list = new UserList(); list.Items.Add(new User { Id = 1, Name = "abc" }); list.Items.Add(new User { Id = 2, Name = "def" }); list.Items.Add(new User { Id = 3, Name = "ghi" }); ser.Serialize(Console.Out, list);</code>
Diese erweiterte Listenserialisierung bietet eine sauberere und allgemeinere Methode zum Deserialisieren von XML in eine hierarchische Struktur.
Das obige ist der detaillierte Inhalt vonWie deserialisiere ich XML in eine Liste von Objekten in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!