Condividi tramite


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)

Riferimenti

StreamWriter

Altre risorse

Serializzazione (C# e Visual Basic)

Serializzazione (C# e Visual Basic)