Maison >développement back-end >C++ >Comment désérialiser XML en objets C# à l'aide de XmlSerializer ?

Comment désérialiser XML en objets C# à l'aide de XmlSerializer ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-15 15:56:47381parcourir

How to Deserialize XML into C# Objects Using XmlSerializer?

Désérialiser XML en objet C# à l'aide de XmlSerializer

Cet article explique comment utiliser la classe XmlSerializer pour désérialiser des documents XML en instances d'objet. Supposons que vous ayez un document XML avec la structure suivante :

<code class="language-xml"><steplist><step><name>Name1</name><desc>Desc1</desc></step><step><name>Name2</name><desc>Desc2</desc></step></steplist></code>

Pour désérialiser ce XML dans le modèle de classe correspondant, vous devez définir la classe suivante :

<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>

Ensuite, vous pouvez utiliser XmlSerializer pour désérialiser. Voici un exemple de code de test :

<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>

Pour désérialiser le XML d'un fichier texte, chargez le fichier dans FileStream et transmettez-le à XmlSerializer :

<code class="language-csharp">using (FileStream fileStream = new FileStream("<文件路径>", FileMode.Open))
{
    StepList result = (StepList)serializer.Deserialize(fileStream);
}</code>

Veuillez remplacer <文件路径> par le chemin réel de votre fichier XML.

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!

Déclaration:
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