Heim >Backend-Entwicklung >C++ >Wie deserialisiere ich XML in eine Liste von Objekten in C#?

Wie deserialisiere ich XML in eine Liste von Objekten in C#?

DDD
DDDOriginal
2025-01-13 08:13:46465Durchsuche

How to Deserialize XML into a List of Objects 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn