Sie sind hier: Startseite
 Liste aller Codebeispiele

Testroutine für die Funktionen xml_serialize() und xml_deserialize() anhand der Klasse "Person"

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

Autor: Dr. Holger Schwichtenberg 

Beschreibung

Im folgenden Beispiel wird eine Instanz der Klasse Person in einer Datei persistent gemacht und dann von dort wieder geladen.

Programmcodebeispiele Visual Basic .NET (VB.NET)

' ============================
' .NET-Code-Beispiel in Visual Basic .NET
' Klassendefinition für einfache Serialisierungs-Beispiele
' (C) Holger@Schwichtenberg.de
' ============================
<Serializable()> Public Class Person
Public Name As String
Public Vorname As String
Public Geb As Date
Public Geschlecht As Char
Public Kinderanzahl As Byte
Public Taetigkeiten As String()
End Class

' ============================
' .NET-Code-Beispiel in Visual Basic .NET
' Beispiel für XML-Serialisieren
' (C) Holger@Schwichtenberg.de
' ============================
Sub XMLSerialisierenTest()
' --- Objekt erzeugen und füllen
Dim p As New Person()
p.Vorname = "Holger"
p.Name = "Schwichtenberg"
p.Geb = #8/1/1972#
p.Geschlecht = "m"
p.Kinderanzahl = 0
p.Taetigkeiten = New String() {"Berater", _
"Entwickler", "Journalist", "Dozent"}

' --- Serialisierungsziel
Const DATEI = "h:\Data\person.xml"

' --- binäres Serialisieren
xml_serialize(p, DATEI)
p = xml_deserialize(GetType(Person), DATEI)

' --- Ausgabe des Objekts zum Test
out(p.Vorname & " " & p.Name & " wurde am " & _
p.Geb & " geboren!")
End Sub

Programmcodebeispiele CSharp (C#)

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

using FCL_Buch;

namespace FCLBuch._System_RuntimeSerialization {

[Serializable]
public class Person {

// Klassendefinition für einfache Serialisierung-Beispiele
public string Name;
public string Vorname;
public DateTime Geb;
public char Geschlecht;
public byte Kinderanzahl;
public string[] Taetigkeiten;

public Person() {

// Konstruktor
FclOutput.PrintOut("Kontruktor von Person aufgerufen...");
}
}
}

using System;

namespace FCLBuch._System_RuntimeSerialization {

public class Samples_Serialisieren {
public void XMLSerialisierenTest() {

// Beispiel für XML-Serialisieren
// Objekt erzeugen und füllen
Person p = new Person();
p.Vorname = "Holger";
p.Name = "Schwichtenberg";
p.Geb = DateTime.Parse("08/01/1972");
p.Geschlecht = 'm';
p.Kinderanzahl = 0;
p.Taetigkeiten = new String[] {"Berater", "Entwickler", "Journalist", "Dozent"};

// Serialisierungsziel
string datei = @"..\_daten\person.xml";

// binäre Serialisieren
SerializationHelper.Xml_Serialize(p, datei);
p = (Person)SerializationHelper.Xml_Deserialize(typeof(Person), datei);

// Ausgabe des Objekts zum Test
FclOutput.PrintOut(p.Vorname + " " + p.Name + " wurde am " + p.Geb + " geboren!");
}
}
}

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