Sie sind hier: Startseite
 Liste aller Codebeispiele

Hilfsroutine zur XML-Serialisierung und anschließender Speicherung des XML-Dokuments in einer Datei

Ein Beispiel zum Einsatz der Klasse System.Xml.Serialization.XmlSerializer aus der .NET-Klassenbibliothek.

Autor: Dr. Holger Schwichtenberg 

Beschreibung

Die Klasse XmlSerializer erwartet bei ihrer Instanziierung ein Type-Objekt mit dem Typ des Objekts, das serialisiert werden soll. Das weitere Vorgehen ist dann analog zum Binär-Serialisierer; der XML-Serialisierer bietet jedoch mehr Steuerungsmöglichkeiten für die Ausgabeform.

Die Serialize()-Methode in der Klasse XmlSerializer akzeptiert als Ausgabestrom wahlweise ein Objekt des Typs Stream, TextWriter oder XMLWriter.

Serialisierung in XML-Datei
In der Hilfsroutine xml_serialize() ist der Ausgabestrom ein StreamWriter, eine Unterklasse von TextWriter. Der zweite Parameter der Serialize()-Methode ist das zu serialisierende Objekt.

Programmcodebeispiele Visual Basic .NET (VB.NET)

' --- Serialisieren in XML-Datei
Sub xml_serialize(ByVal obj As Object, ByVal datei As String)
Dim serializer As New XmlSerializer(obj.GetType)
Dim writer As New StreamWriter(datei)
serializer.Serialize(writer, obj)
writer.Close()
out("Objekt wurde gespeichert in " & datei)
End Sub

Programmcodebeispiele CSharp (C#)

using System;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization.Formatters.Soap;
using System.Runtime.Serialization;
using System.IO;
using System.Xml.Serialization;
using System.Xml;
using System.Data;

namespace FCLBuch._System_RuntimeSerialization {

// Hilfsfunktionen für Serialisierung
public class SerializationHelper {
public static void Xml_Serialize(object obj, string datei) {

// Serialisieren in XML-Datei
XmlSerializer serializer = new XmlSerializer(obj.GetType());
StreamWriter writer = new StreamWriter(datei);
serializer.Serialize(writer, obj);
writer.Close();
FclOutput.PrintOut("Objekt wurde gespeichert in " + datei);
}
}
}

Querverweise

 Definition '.NET Framework Class Library'  Verfügbarkeit der Klasse 'System.Xml.Serialization.XmlSerializer'  Übersicht über den FCL-Namensraum 'System.Xml.Serialization'  .NET & Visual Studio Community Portal