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()
.
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