Sérialiser un objet en XML en C#

Muhammad Maisam Abbas 16 février 2024
Sérialiser un objet en XML en C#

Ce didacticiel explique comment sérialiser un objet de classe dans un fichier XML ou une chaîne en C#.

Sérialiser un objet en XML avec la classe XmlSerializer en C#

La sérialisation signifie la conversion des objets de classe au format XML ou binaire. La classe XmlSerializer convertit les objets de classe en XML et vice versa en C#. La méthode XmlSerializer.Serialize() convertit tous les champs publics et propriétés d’un objet de classe au format XML. Nous devons définir notre classe avec le spécificateur d’accès public si nous voulons l’écrire dans un fichier ou une chaîne XML. L’exemple de code suivant nous montre comment sérialiser un objet de classe en une variable de chaîne XML avec la classe XmlSerializer en C#.

using System;
using System.IO;
using System.Linq;
using System.Xml;
using System.Xml.Serialization;

namespace serialize_object {
  public class Sample {
    public string value { get; set; }
  }
  class Program {
    static void Main(string[] args) {
      Sample obj = new Sample();
      obj.value = "this is some value";
      string xml = "";
      XmlSerializer serializer = new XmlSerializer(typeof(Sample));
      using (var sww = new StringWriter()) {
        using (XmlWriter writer = XmlWriter.Create(sww)) {
          serializer.Serialize(writer, obj);
          xml = sww.ToString();  // Your XML
        }
      }
      Console.WriteLine(xml);
    }
  }
}

Production:

<?xml version="1.0" encoding="utf-16"?><Sample xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema"><value>this is some value</value></Sample>

Dans le code ci-dessus, nous avons sérialisé l’objet obj de la classe Sample en une variable de chaîne XML xml avec la fonction XmlSerializer.Serialize() en C#. Nous avons d’abord initialisé une instance de la classe XmlSerializer en passant le paramètre typeof(Sample). Cela crée une instance de la classe XmlSerializer de type Sample. Nous avons ensuite créé une instance de la classe StringWriter pour écrire des données dans une variable chaîne. Nous avons ensuite créé une instance de la classe XmlWriter pour écrire dans l’instance de la classe StringWriter. Nous avons ensuite écrit l’objet dans l’instance de la classe StringWriter avec serializer.Serialize(writer, obj) et stocké le résultat dans la variable chaîne xml avec la fonction ToString().

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Article connexe - Csharp Object