Code-Beispiel

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.

Programmcodebeispiel in 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

Weiteres Programmcodebeispiel in 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);
}
}
}

Hinweise

Ausgaben werden in den Beispielen durch Hilfsroutinen wie out() und PrintOut() erzeugt. Diese sind hier nicht angegeben, da deren Implementierung von der jeweiligen Umgebung abhängt. Für Konsolenanwendungen können hier z.B. Console.WriteLine() einsetzen.


 

Querverweise

 Liste aller Codebeispiele  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

Buchtipp

Buchcover PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch (6. Auflage Juni 2024 (10. Auflage Gesamtreihe)) PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch
Autor(en): Dr. Holger Schwichtenberg
Erschienen 2024
Umfang: 1426 Seiten
ISBN: 3446481958

Beratung & Support

Schulungen

  Anfrage für eine individuelle Schulung zum Thema VISUAL BASIC C#   Gesamter Schulungsthemenkatalog

Fachbücher

  Alle unsere aktuellen Fachbücher   E-Book-Abo für ab 99 Euro im Jahr