Serializar um objeto para XML em C#

Muhammad Maisam Abbas 16 fevereiro 2024
Serializar um objeto para XML em C#

Este tutorial discutirá como serializar um objeto de classe em um arquivo XML ou string em C#.

Serializar objeto para XML com a classe XmlSerializer em C#

Serializar significa converter objetos de classe em XML ou formato binário. A classe XmlSerializer converte objetos de classe em XML e vice-versa em C#. O método XmlSerializer.Serialize() converte todos os campos públicos e propriedades de um objeto de classe para o formato XML. Precisamos definir nossa classe com o especificador de acesso público se quisermos gravá-la em um arquivo XML ou string. O exemplo de código a seguir nos mostra como serializar um objeto de classe para uma variável de string XML com a classe XmlSerializer em 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);
    }
  }
}

Resultado:

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

No código acima, serializamos o objeto obj da classe Sample para uma variável de string XML xml com a função XmlSerializer.Serialize() em C#. Inicializamos primeiro uma instância da classe XmlSerializer passando o parâmetro typeof(Sample). Isso cria uma instância da classe XmlSerializer do tipo Sample. Em seguida, criamos uma instância da classe StringWriter para gravar dados em uma variável de string. Em seguida, criamos uma instância da classe XmlWriter para gravar na instância da classe StringWriter. Em seguida, gravamos o objeto na instância da classe StringWriter com serializer.Serialize(writer, obj) e armazenamos o resultado na variável de string xml com a função 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

Artigo relacionado - Csharp Object