Sie sind hier: Startseite
 Liste aller Codebeispiele

Hilfsroutine zur Deserialisierung eines Objekts aus einer XML-Datei

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

Autor: Dr. Holger Schwichtenberg 

Beschreibung

Deserialize() wird auch analog zum Binär-Serialisierer verwendet. Zu beachten ist, dass die XmlSerializer-Klasse bei der Deserialisierung den Typ des zu deserialisierenden Objekts erwartet.

Deserialisierung aus XML-Datei
Die Hilfsroutine xml_deserialize() benötigt für die Instanziierung der XmlSerializer-Klasse neben dem Dateinamen einen weiteren Parameter mit einem entsprechenden Type-Objekt. Für das Einlesen der XML-Datei kommt hier ein StreamReader zum Einsatz. Alternativ könnte ein Stream- oder ein XmlReader-Objekt verwendet werden.

Programmcodebeispiele Visual Basic .NET (VB.NET)

' --- Deserialisieren aus XML-Datei
Function xmldeserialize(ByVal t As Type,
ByVal datei As String) As Object
Dim obj As Object
Dim reader As New StreamReader(datei)
Dim serializer As New XmlSerializer(t)
obj = serializer.Deserialize(reader)
out("Objekt wurde geladen aus " & datei)
reader.Close()
Return (obj)
End Function

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 object Xml_Deserialize(Type t, string datei) {

// Deserialisieren aus XML-Datei
StreamReader reader = new StreamReader(datei);
XmlSerializer serializer = new XmlSerializer(t);
object obj = serializer.Deserialize(reader);
FclOutput.PrintOut("Objekt wurde geladen aus " + datei);
reader.Close();
return (obj);
}
}
}

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