Serialisierbare Klassen
Weil ichs immer wieder vergesse, will ich einfach mal festhalten, welche Voraussetzungen in einer Klasse gegeben sein müssen, damit sie zu einer XML-Datei serialisierbar ist. Sprache: C#
Serialisieren heißt hierbei, dass ein beliebiges Klassenobjekt in einer XML-Datei gespeichert wird, ohne dass man sich selbst Gedanken um den Aufbau der XML-Datei machen müsste. Es wird einfach die Funktion aufgerufen, die Datei wird erstellt und umgekehrt kann man aus der Datei auch wieder ein Objekt deserialisieren, dass man im Programmaufruf weiter verwenden kann.
Sehr gut zur Datensicherung, wenn man keine Datenbank im Zielsystem installieren kann oder will und die Daten nicht mega geschützt sein müssen.
Nun aber folgendes:
Die Klassen, die von der Serialisierung betroffen sind, müssen allesamt als Serialisierbar gekennzeichnet sein “[Serializable]“, public sein, einen Standardkonstruktor haben und natürlich für alle Member (Klassenvariablen) müssen öffentliche Properties mit getter und setter definiert sein.
Letzteres hat mich jetzt paar Stunden beschäftigt. Hätt ich mir das damals mal schon aufgeschrieben
2 Kommentare zu “Serialisierbare Klassen”
Trackback URI | Kommentare RSS


Schön dass du auf meine Seite gefunden hast :) Mein Name ist Evelyn oder Eve, im Netz aber nur als Latita anzutreffen. Dies ist ein Blog bevorzugt über mich und alles was mich interessiert.
Falls du sofort viel mehr wissen willst, gibt es an dieser Stelle ein ausführlicheres '




© 2012 |
am 11 Mar 2010 um 21:39 N-Rico
Hach ja.. Serialisierung. Schwerpunkt meiner Abschlussarbeit. Ein wirklich schönes Thema. Hättest ja mal fragen können, aber schön, dass Du es allein geschafft hast.
*stolz is*
Serialisierung heißt nicht unbedingt Umwandlung in XML, sondern einfach “persistierbar machen”. Du kannst auch nen Bytestrom erzeugen und in eine Textdatei speichern. XML bietet sich eben an, weil die Struktur klarer ist und sich auch wieder wunderbar deserialisieren lässt.
Im Übrigen: Wer in der Klasse noch andere Klassen für seine Membervariablen verwendet, muss darauf achten, dass diese ebenfalls serialisierbar sind. Sonst gibt es eine Exception beim Speichern. Mit dem Attribut “[XmlIgnore]” kann man auch Variablen vor dem Serialisieren ausschließen. Sie erhalten dann beim Deserialisieren ihren Standardwert (Int zB 0, Objekte null). Statische Variablen und Konstanten werden natürlich nicht serialisiert. Das macht auch keinen Sinn.
Viel Spaß weiterhin bei Deiner Arbeit! Bin gespannt, was Du da schönes zauberst.
am 15 Mar 2010 um 11:42 Latita
=) danke für dein Lob und deinen Kommentar
du hast natürlich recht, was das Thema Serialisierung betrifft, ist der Artikel viel zu ungenau.
Zwischendrin hatte ich übrigens auch einen “dieses Programm ist mit Windows7 nicht kompatibel”-Problem, weil ich eins von den ganzen erwähnten Punkten nicht bedacht hatte
Dass das deine Abschlussarbeit war, daran erinnere ich mich noch. Als ich mich wegen der Autovermietung das erste mal mit der Serialisierung bzw. speziell wieder der XML-Serialisierung auseinandersetzte, hatte ich ja auch was in deiner Arbeit nachgelesen