Usar o Visual C# para serializar um objeto para XML
Este artigo fornece um método sobre como serializar um objeto para XML (Extensible Markup Language) usando o Visual C#.
Versão original do produto: Visual Studio
Número original do KB: 815813
Resumo
O método descrito neste artigo é útil para persistir o estado de um objeto. O método também é útil para clonar um objeto desserializando o XML de volta para um novo objeto.
Este artigo refere-se aos seguintes namespaces da Biblioteca de Classes do Microsoft .NET Framework:
System.Xml
System.Xml.Serialization
Requisitos
Este artigo pressupõe que você esteja familiarizado com os seguintes tópicos:
- Visual Studio
- Familiaridade geral com XML
- Familiaridade geral com o Visual C#
Serialização XML
Serialização é o processo de pegar o estado de um objeto e persisti-lo de alguma forma. O .NET Framework inclui objetos poderosos que podem serializar qualquer objeto para XML. O System.Xml.Serialization
namespace fornece esse recurso.
Siga estas etapas para criar um aplicativo de console que cria um objeto e, em seguida, serializa seu estado para XML:
No Visual C#, crie um novo projeto de Aplicativo de Console.
No menu Projeto , selecione Adicionar Classe para adicionar uma nova classe ao projeto.
Na caixa de diálogo Adicionar Novo Item, altere o nome da classe para clsPerson.
Selecione Adicionar. Uma nova classe é criada.
Adicione o código a seguir após a instrução de classe
clsPerson
pública.public string FirstName; public string MI; public string LastName;
Alterne para a janela de código para Program.cs no Visual Studio.
void Main
No método, declare e crie uma instância daclsPerson
classe:clsPerson p = new clsPerson();
Defina as propriedades do
clsPerson
objeto:p.FirstName = "Jeff"; p.MI = "A"; p.LastName = "Price";
O
Xml.Serialization
namespace contém umaXmlSerializer
classe que serializa um objeto para XML. Ao criar uma instância deXmlSerializer
, você passa o tipo da classe que deseja serializar para seu construtor:System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType());
O
Serialize
método é usado para serializar um objeto para XML. Serialize está sobrecarregado e pode enviar saída para umTextWriter
objeto ,Stream
, ouXMLWriter
. Neste exemplo, você envia a saída para o console:x.Serialize(Console.Out,p); Console.WriteLine(); Console.ReadLine();
Listagem de código completo
using System;
public class clsPerson
{
public string FirstName;
public string MI;
public string LastName;
}
class class1
{
static void Main(string[] args)
{
clsPerson p=new clsPerson();
p.FirstName = "Jeff";
p.MI = "A";
p.LastName = "Price";
System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType());
x.Serialize(Console.Out, p);
Console.WriteLine();
Console.ReadLine();
}
}
Verificação
Para verificar se o projeto funciona, pressione CTRL+F5 para executá-lo. Um clsPerson
objeto é criado e preenchido com os valores inseridos. Esse estado é serializado para XML. A janela do console mostra o seguinte código:
<?xml version="1.0" encoding="IBM437"?>
<clsPerson xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<FirstName>Jeff</FirstName>
<MI>A</MI>
<LastName>Price</LastName>
</clsPerson>
Solucionar problemas
O Xml.Serialization.XmlSerializer
objeto executa apenas serialização superficial. Se você também quiser serializar as variáveis privadas de um objeto ou objetos filho, deverá usar a serialização profunda.