Maison > développement back-end > C++ > Comment désérialiser XML en une liste d'objets en C# ?

Comment désérialiser XML en une liste d'objets en C# ?

DDD
Libérer: 2025-01-13 08:13:46
original
461 Les gens l'ont consulté

How to Deserialize XML into a List of Objects in C#?

Désérialisation XML C# vers liste d'objets

Dans certains cas, vous devrez peut-être désérialiser XML dans un format de données structuré, tel qu'une liste d'objets. Cet article explore les possibilités et les étapes nécessaires pour réaliser cette désérialisation spécifique.

Supposons que le XML suivant doive être converti en List<User> :

<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>
Copier après la connexion

Pour implémenter cette conversion, vous pouvez utiliser la classe XmlSerializer. Cependant, afin de s'adapter à la structure du XML, celui-ci doit être légèrement modifié. Au lieu de désérialiser directement vers List<User>, utilisez une classe intermédiaire contenant une liste.

Ce qui suit est un exemple d'implémentation d'une classe wrapper :

<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>
Copier après la connexion

Avec la classe UserList, le processus de désérialisation devient très simple :

<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>
Copier après la connexion

Cette sérialisation de liste étendue fournit une méthode plus propre et plus générale pour désérialiser XML dans une structure hiérarchique.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal