Procedura: scrivere dati oggetto in un file XML (C# e Visual Basic)
Nell'esempio riportato di seguito viene scritto l'oggetto di una classe in un file XML utilizzando la classe XmlSerializer.
Esempio
In questo esempio di codice viene definita una classe denominata Book, viene creata un'istanza della classe e viene utilizzata la serializzazione XML per scrivere l'istanza in un file XML.
Codice simile a questo è disponibile come frammento di codice IntelliSense. In Gestione frammenti di codice si trova in XML. Per ulteriori informazioni, vedere Frammenti di codice.
Public Module XMLWrite
Sub Main()
WriteXML()
End Sub
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
End Module
public class XMLWrite
{
static void Main(string[] args)
{
WriteXML();
}
public class Book
{
public String title;
}
public static void WriteXML()
{
Book overview = new Book();
overview.title = "Serialization Overview";
System.Xml.Serialization.XmlSerializer writer =
new System.Xml.Serialization.XmlSerializer(typeof(Book));
var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "//SerializationOverview.xml";
System.IO.FileStream file = System.IO.File.Create(path);
writer.Serialize(file, overview);
file.Close();
}
}
Compilazione del codice
È necessario che nella classe sia presente un costruttore pubblico senza parametri.
Programmazione efficiente
Le seguenti condizioni possono generare un'eccezione:
Nella classe da deserializzare non è presente un costruttore pubblico senza parametri.
Il file esiste ed è di sola lettura (IOException).
Il percorso è troppo lungo (PathTooLongException).
Il disco è pieno (IOException).
Sicurezza
Se il file non esiste, ne viene creato uno nuovo nell'esempio. Per poter creare un file in un'applicazione, è necessario che l'applicazione disponga dell'accesso Create alla cartella. Se il file esiste già, sarà necessario solo l'accesso Write, ossia un privilegio minore. Laddove possibile, è più sicuro creare il file durante la fase di distribuzione e concedere solo l'accesso Read a un unico file, anziché l'accesso Create a una cartella.
Vedere anche
Attività
Procedura: leggere dati oggetto in un file XML (C# e Visual Basic)