Impressum  |   RSS  |  Forum

tsql

C# Klassen serialisieren

Mit ein paar Zeilen Code ist es möglich komplette Klassen abzuspeichern und wieder zu laden. Dabei wird eine Klasse in einen Stream umgewandelt. Dieser Stream kann dann als XML-Datei gespeichert werden. Der Namespace System.Xml.Serialization stellt uns den XMLSerializer zu Verfügung. Mit Hilfe des Namespaces System.IO erhalten wir den Dateizugriff.

Der erste Code-Ausschnitt zeigt die Klasse selbst.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
public class  Kunde
{
    private string _Name;
    private string _Vorname;
    private string _PLZ;
 
    public Kunde(string Name, string Vorname, string PLZ)
    {
        _Name = Name;
        _Vorname = Vorname;
        _PLZ = PLZ;
    }
 
    public Kunde()
    { }
 
 
    public string Vorname
    {
        get 
        { 
            return _Vorname; 
        }
        set 
        { 
            _Vorname = value; 
        }
    }
 
    public string Name
    {
        get 
        { 
            return _Name; 
        }
        set 
        { 
            _Name = value; 
        }
    }
 
    public string PLZ
    {
        get
        {
            return _PLZ;
        }
        set
        {
            _PLZ = value;
        }
    }
}

Der zweite Code-Ausschnitt zeigt die gespeicherte XML Datei

1
2
3
4
5
6
<?xml version="1.0"?>
 <Kunde xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Vorname>Klaus</Vorname>
  <Name>Michael</Name>
  <PLZ>08015</PLZ>
 </Kunde>

Lesen und Speichern der Klasse als XML Datei

Das Serialisieren und Deserialisieren übernehmen die nachfolgenden Methoden.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
private string sPfad = @"c:\kunden-datenbank.xml";
 
 
private void Speichern(string Name, string Vorname, string PLZ)
{
    Kunde myKunde = new Kunde(Name, Vorname, PLZ);
    XmlSerializer ser = new XmlSerializer(typeof(Kunde));
    FileStream str = new FileStream(sPfad, FileMode.Create);
    ser.Serialize(str, myKunde);
    str.Close();
}
 
private Kunde Lesen()
{
    XmlSerializer ser = new XmlSerializer(typeof(Kunde));
    StreamReader sr = new StreamReader(sPfad);
    Kunde myKunde = (Kunde)ser.Deserialize(sr);
    sr.Close();
    return myKunde;
}
 
 
 
//Beispiel 
 
private void Test1()
{
    Speichern("Michael", "Klaus", "08015");
}
 
private void Test2()
{
    Kunde myKunde = Lesen();
}

Fazit

Serialisierung gibt dem Entwickler die Möglichkeit Informationen auf einfache Art zu speichern. Kleinere XML Datenbanken können damit ohne großen Aufwand erzeugt und eingelesen werden.


Tags: , , , ,

Hinterlasse einen Kommentar


Kommentare werden nach manueller Prüfung hier angezeigt.