Partager via


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

Cet exemple lit des données d'objet écrites précédemment dans un fichier XML à l'aide de la classe XmlSerializer.

Exemple

Cet exemple de code est également disponible sous forme d'extrait de code IntelliSense. Dans le sélecteur d'extrait de code, il se trouve dans XML. Pour plus d’informations, consultez Extraits de code.

Public Class Book
    Public Title As String 
End Class 

Public Sub ReadXML()
    Dim reader As New System.Xml.Serialization.XmlSerializer(GetType(Book))
    Dim file As New System.IO.StreamReader(
        "c:\temp\SerializationOverview.xml")
    Dim overview As Book
    overview = CType(reader.Deserialize(file), Book)
    Console.WriteLine(overview.Title)
End Sub
public class Book
{
    public String title;
}       

public void ReadXML()
{
    // First write something so that there is something to read ... 
    var b = new Book { title = "Serialization Overview" };
    var writer = new System.Xml.Serialization.XmlSerializer(typeof(Book));
    var wfile = new System.IO.StreamWriter(@"c:\temp\SerializationOverview.xml");
    writer.Serialize(wfile, b);
    wfile.Close();

    // Now we can read the serialized book ...
    System.Xml.Serialization.XmlSerializer reader = 
        new System.Xml.Serialization.XmlSerializer(typeof(Book));
    System.IO.StreamReader file = new System.IO.StreamReader(
        @"c:\temp\SerializationOverview.xml");
    Book overview =  (Book)reader.Deserialize(file);
    file.Close();

    Console.WriteLine(overview.title);

}

Compilation du code

Remplacez le nom de fichier "c:\IntroToVB.xml" par le nom du fichier contenant les données sérialisées. Pour plus d'informations sur la sérialisation des données, consultez Comment : écrire des données d'objet dans un fichier XML (C# et Visual Basic).

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

Seuls les propriétés et les champs publics sont désérialisés.

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.

  • Les données contenues dans le fichier ne correspondent pas aux données de la classe à désérialiser.

  • Le fichier n'existe pas (IOException).

Sécurité

Vérifiez toujours les entrées et ne désérialisez jamais des données à partir d'une source non fiable. L'objet recréé s'exécute sur un ordinateur local avec les autorisations du code qui l'a désérialisé. Vérifiez toutes les entrées avant d'utiliser les données dans votre application.

Voir aussi

Tâches

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

Référence

StreamWriter

Concepts

Guide de programmation C#

Autres ressources

Sérialisation (C# et Visual Basic)

Guide de programmation Visual Basic