Procedura: leggere dati oggetto in un file XML (C# e Visual Basic)

Nell'esempio riportato di seguito vengono letti i dati di oggetti precedentemente scritti in un file XML utilizzando la classe XmlSerializer.

Esempio

Questo esempio di codice è disponibile anche come frammento di codice IntelliSense. Nella casella di selezione dei frammenti di codice si trova in XML. Per ulteriori informazioni, vedere Procedura: inserire frammenti di codice IntelliSense.

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()
{
    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 = new Book();
    overview = (Book)reader.Deserialize(file);

    Console.WriteLine(overview.title);

}

Compilazione del codice

Sostituire il nome del file "c:\IntroToVB.xml" con il nome del file contenente i dati serializzati. Per ulteriori informazioni sulla serializzazione dei dati, vedere Procedura: scrivere dati oggetto in un file XML (C# e Visual Basic).

È necessario che nella classe sia presente un costruttore pubblico senza parametri.

Solo le proprietà e i campi pubblici sono deserializzati.

Programmazione efficiente

Le seguenti condizioni possono generare un'eccezione:

  • Nella classe da deserializzare non è presente un costruttore pubblico senza parametri.

  • I dati del file non rappresentano dati dalla classe da deserializzare.

  • Il file non esiste (IOException).

Sicurezza

Verificare sempre gli input e non deserializzare mai dati da un'origine non attendibile. L'oggetto ricreato viene eseguito su un computer locale con le autorizzazioni del codice che lo ha deserializzato. Prima di usare i dati nell'applicazione verificare tutti gli input.

Vedere anche

Attività

Procedura: scrivere dati oggetto in un file XML (C# e Visual Basic)

Riferimenti

StreamWriter

Concetti

C# Programming Guide

Altre risorse

Serializzazione (C# e Visual Basic)

Visual Basic Programming Guide