Serializar un objeto a XML en C#

Muhammad Maisam Abbas 16 febrero 2024
Serializar un objeto a XML en C#

Este tutorial discutirá cómo serializar un objeto de clase en un archivo XML o una cadena en C#.

Serializar objeto a XML con la clase XmlSerializer en C#

Serializar significa convertir objetos de clase a formato XML o binario. La clase XmlSerializer convierte objetos de clase a XML y viceversa en C#. El método XmlSerializer.Serialize() convierte todos los campos públicos y propiedades de un objeto de clase a formato XML. Necesitamos definir nuestra clase con el especificador de acceso público si queremos escribirlo en un archivo XML o cadena. El siguiente ejemplo de código nos muestra cómo serializar un objeto de clase en una variable de cadena XML con la clase 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);
    }
  }
}

Producción :

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

En el código anterior, serializamos el objeto obj de la clase Sample a una variable de cadena XML xml con la función XmlSerializer.Serialize() en C#. Primero inicializamos una instancia de la clase XmlSerializer pasando el parámetro typeof(Sample). Esto crea una instancia de la clase XmlSerializer de tipo Sample. Luego creamos una instancia de la clase StringWriter para escribir datos en una variable de cadena. Luego creamos una instancia de la clase XmlWriter para escribir en la instancia de la clase StringWriter. Luego escribimos el objeto en la instancia de la clase StringWriter con serializer.Serialize(writer, obj) y almacenamos el resultado en la variable de cadena xml con la función 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

Artículo relacionado - Csharp XML

Artículo relacionado - Csharp Object