Partilhar via


Como ler dados de objeto a partir de um arquivo XML (C# e Visual Basic)

Este exemplo lê Objeto dados que foram previamente gravados em um arquivo XML usando a classe XmlSerializer.

Exemplo

Este exemplo de código também está disponível como um trecho de código IntelliSense. No seletor de trecho de código, ele está localizado em XML . Para obter mais informações, consulte Trechos de código.

Public Class Book
    Public Title As String 
End Class 

Public Sub ReadXML()
    Dim reader As New System.Xml.Serialization.XmlSerializer(GetType(Book))
    Dim file As New System.IO.StreamReader(
        "c:\temp\SerializationOverview.xml")
    Dim overview As Book
    overview = CType(reader.Deserialize(file), Book)
    Console.WriteLine(overview.Title)
End Sub
public class Book
{
    public String title;
}       

public void ReadXML()
{
    // First write something so that there is something to read ... 
    var b = new Book { title = "Serialization Overview" };
    var writer = new System.Xml.Serialization.XmlSerializer(typeof(Book));
    var wfile = new System.IO.StreamWriter(@"c:\temp\SerializationOverview.xml");
    writer.Serialize(wfile, b);
    wfile.Close();

    // Now we can read the serialized book ...
    System.Xml.Serialization.XmlSerializer reader = 
        new System.Xml.Serialization.XmlSerializer(typeof(Book));
    System.IO.StreamReader file = new System.IO.StreamReader(
        @"c:\temp\SerializationOverview.xml");
    Book overview =  (Book)reader.Deserialize(file);
    file.Close();

    Console.WriteLine(overview.title);

}

Compilando o código

Substitua o nome de arquivo "c:\IntroToVB.XML" com o nome do arquivo que contém os dados serializados. Para obter mais informações sobre como publicar série de dados, consulte Como gravar dados de objeto em um arquivo XML (C# e Visual Basic).

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

Apenas propriedades públicas e campos estão desserializados.

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.

  • Os dados no arquivo não representam dados da classe a ser desserializado.

  • O arquivo não existe (IOException).

Segurança

Sempre verifique se as entradas e nunca desserializar dados de uma fonte não confiável. O objeto recriado é executado em um computador local com as permissões do código que desserializado-lo. Verifique todas as entradas antes de usar os dados no seu aplicativo.

Consulte também

Tarefas

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

Referência

StreamWriter

Conceitos

Guia de Programação em C#

Outros recursos

Serialização (C# e Visual Basic)

Guia de programação do Visual Basic