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 sélecteur d'extrait de code, il se trouve dans XML. Pour plus d'informations, consultez Comment : insérer des extraits de code 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();
}

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)