Vorgehensweise: Schreiben von Objektdaten in eine XML-Datei (C#)

Dieses Beispiel verwendet die <xref:System.Xml.Serialization.XmlSerializer>-Klasse, um das Objekt aus einer Klasse in eine XML-Datei zu schreiben.

Beispiel

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

Kompilieren des Codes

Die Klasse muss über einen öffentlichen Konstruktor ohne Parameter verfügen.

Stabile Programmierung

Die folgenden Bedingungen können einen Ausnahmefehler verursachen:

  • Die zu serialisierende Klasse verfügt nicht über einen öffentlichen, parameterlosen Konstruktor.

  • Die Datei ist bereits vorhanden und schreibgeschützt (<xref:System.IO.IOException>).

  • Der Pfad ist zu lang (<xref:System.IO.PathTooLongException>).

  • Der Datenträger ist voll (<xref:System.IO.IOException>).

.NET Framework-Sicherheit

Mit diesem Beispiel wird eine neue Datei erstellt, wenn diese noch nicht vorhanden ist. Wenn eine Anwendung eine Datei erstellen muss, benötigt sie eine Create-Berechtigung für den Ordner. Wenn die Datei bereits vorhanden ist, benötigt die Anwendung lediglich die Berechtigung für den Write-Zugriff, also eine geringere Berechtigung. Aus Sicherheitsgründen sollte die Datei nach Möglichkeit erst im Verlauf der Bereitstellung erstellt werden. Außerdem sollte nur die Read-Berechtigung für eine einzelne Datei erteilt werden (anstatt Create-Berechtigungen für den gesamten Ordner zu gewähren).

Siehe auch

<xref:System.IO.StreamWriter>
Vorgehensweise: Lesen von Objektdaten aus einer XML-Datei (C#)
Serialisierung (C#)