Serializzare un oggetto in XML in C#

Muhammad Maisam Abbas 12 ottobre 2023
Serializzare un oggetto in XML in C#

Questa esercitazione discuterà come serializzare un oggetto classe in un file o una stringa XML in C#.

Serializza l’oggetto in XML con la classe XmlSerializer in C#

Serializzare significa convertire gli oggetti della classe in XML o in formato binario. La classe XmlSerializer converte gli oggetti della classe in XML e viceversa in C#. Il metodo XmlSerializer.Serialize() converte tutti i campi pubblici e le proprietà di un oggetto classe in formato XML. Dobbiamo definire la nostra classe con lo specificatore di accesso public se vogliamo scriverla in un file o una stringa XML. Il seguente esempio di codice ci mostra come serializzare un oggetto classe in una variabile stringa XML con la classe XmlSerializer in 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);
    }
  }
}

Produzione:

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

Nel codice precedente, abbiamo serializzato l’oggetto obj della classe Sample in una variabile stringa XML xml con la funzione XmlSerializer.Serialize() in C#. Per prima cosa abbiamo inizializzato un’istanza della classe XmlSerializer passando il parametro typeof(Sample). Questo crea un’istanza della classe XmlSerializer di tipo Sample. Abbiamo quindi creato un’istanza della classe StringWriter per scrivere dati in una variabile stringa. Abbiamo quindi creato un’istanza della classe XmlWriter per scrivere nell’istanza della classe StringWriter. Abbiamo quindi scritto l’oggetto nell’istanza della classe StringWriter con serializer.Serialize(writer, obj) e memorizzato il risultato nella variabile stringa xml con la funzione 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

Articolo correlato - Csharp Object