Partager via


Comment : écrire des données d'objet dans un fichier XML (C# et Visual Basic)

Cet exemple écrit l'objet d'une classe dans un fichier XML à l'aide de la classe XmlSerializer.

Exemple

Cet exemple de code définit une classe nommée Book, crée une instance de la classe et utilise la sérialisation XML pour écrire l'instance dans un fichier XML.

Du code semblable à celui-ci est disponible sous la forme d'un extrait de code IntelliSense. Dans le gestionnaire des extraits de code, il se trouve dans XML. Pour plus d'informations, consultez Extraits de code.

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

Compilation du code

La classe doit disposer d'un constructeur public sans paramètres.

Programmation fiable

Les conditions ci-dessous peuvent générer une exception.

  • La classe en cours de désérialisation ne dispose pas d'un constructeur public sans paramètres.

  • Le fichier existe déjà et est en lecture seule (IOException).

  • Le chemin d'accès est trop long (PathTooLongException

  • Le disque est saturé (IOException).

Sécurité

Cet exemple crée un fichier s'il n'existe pas. Si une application doit créer un fichier, elle doit disposer de l'accès Create pour le dossier. Si le fichier existe déjà, l'application n'a besoin que d'un accès Write, un privilège moins important. Dans la mesure du possible, et pour des raisons de sécurité, il est préférable de créer le fichier au moment du déploiement et d'accorder uniquement un accès Read à un seul fichier plutôt qu'un accès Create à l'ensemble du dossier.

Voir aussi

Tâches

Comment : lire des données d'objet à partir d'un fichier XML (C# et Visual Basic)

Référence

StreamWriter

Autres ressources

Sérialisation (C# et Visual Basic)

Sérialisation (C# et Visual Basic)