Wer schon einmal vor der Aufgabe stand, den Zustand seiner Objekt in eine XML Datei zu serialisieren weiß das .NET hierfür den Namespace System.Xml.Serialization und im speziellen die Klasse XmlSerializer vorsieht. Jeder der diese Klasse zum Serialisieren oder Deserialisieren schon benutzt hat wird festgestellt haben das nur öffentliche Member der zu serialisierenden Objekte in die XML Datei geschrieben werden. Alle anderen Member werden leider nicht berücksichtigt. Um diese nun doch noch serialisieren zu können, kann man public Properties einführen. Dies ist aber oftmals nicht erwünscht, da andere Klassen diese Member erst gar nicht kennen sollen geschweige denn darauf zugreifen dürfen.
Für dieses Problem liefert WCF (ab dem .NET Framework 3.0) nun Abhilfe. Der Schlüssel zum Ziel hierfür ist die Klasse DataContractSerializer im Namespace System.Runtime.Serialization. Primär dient diese Klasse zur Serialisierung/Deserialisierung von Objekten die mittels WCF z.B. über das Netzwerk verschickt oder empfangen werden. Man kann die Klasse aber auch hervorragend zur Serialisierung seiner eigenen Objekte verwenden und sehr einfach XML-Code aus seinen Objekten erzeugen.
(weiterlesen…)