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 è anche disponibile come frammento di codice IntelliSense. Nella casella di selezione dei frammenti di codice si trova in XML. Per ulteriori informazioni, vedere Frammenti di codice.
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);
}
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)