Partilhar via


Como: Gravar dados de objeto em um arquivo XML (C# e Visual Basic)

Este exemplo grava o objeto de uma classe para um arquivo XML usando a classe XmlSerializer.

Exemplo

Este exemplo de código define uma classe denominada Book, cria uma instância da classe e usa serialização XML para gravar uma instância em um arquivo XML.

Um código semelhante a este está disponível como um trecho de código do IntelliSense. No seletor de trecho de código, ele está localizado em XML . Para obter mais informações, consulte Como: Inserir trechos de código de IntelliSense.

Public Class Book
    Public Title As String
End Class

Public Sub WriteXML()
    Dim overview As New Book
    overview.Title = "Serialization Overview"
    Dim writer As New System.Xml.Serialization.XmlSerializer(GetType(Book))
    Dim file As New System.IO.StreamWriter(
        "c:\temp\SerializationOverview.xml")
    writer.Serialize(file, overview)
    file.Close()
End Sub
public class Book
{
    public String title; 

 }

public void WriteXML()
{
    Book overview = new Book();
    overview.title = "Serialization Overview";
    System.Xml.Serialization.XmlSerializer writer = 
        new System.Xml.Serialization.XmlSerializer(typeof(Book));

    System.IO.StreamWriter file = new System.IO.StreamWriter(
        @"c:\temp\SerializationOverview.xml");
    writer.Serialize(file, overview);
    file.Close();
}

Compilando o código

A classe deve ter um construtor público sem parâmetros.

Programação robusta

As seguintes condições podem causar uma exceção:

  • A classe seja serializada não tem um construtor público, sem-parâmetros.

  • O arquivo existe e é somente leitura (IOException).

  • O caminho é muito longo (PathTooLongException).

  • O disco está cheio (IOException).

Segurança

Este exemplo cria um novo arquivo, se o arquivo ainda não existir. Se um aplicativo precisar criar um arquivo, o aplicativo precisa do acesso Create para a pasta. Se o arquivo já existir, o aplicativo precisa apenas do acesso Write, um privilégio menor. Quando possível, é mais seguro criar o arquivo durante a implantação e somente conceder acesso Read para um único arquivo, e não acesso Create para uma pasta.

Consulte também

Tarefas

Como: Ler dados de objeto de um arquivo XML (C# e Visual Basic)

Referência

StreamWriter

Outros recursos

Serialização (C# e Visual Basic)

Serialização (C# e Visual Basic)