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. 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 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();
}

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)

Riferimenti

StreamWriter

Altre risorse

Serializzazione (C# e Visual Basic)

Serializzazione (C# e Visual Basic)