Benutzer mit den meisten Antworten
XML Deserialize in ein bestehendes Object

Frage
-
Ich speichere umfangreiche Settings per Serialization in ein XML-File. Das serialisierte Object enthält allerdings auch einige Felder, die von der Serialisation ausgeschlossen sind.
Beim zurückladen (Deserialize) wird jedoch immer ein neues Objekt angelegt; wenn ich das auf meine bestehende Objekt-Variable lege, werden die nicht-serialisierten Felder mit den Klassen-Initialwerten überschrieben.
Wie kann ich es erreichen, dass beim Deserialze mein bestehendes Objekt erhalten bleibt und nur die serialisierten Daten überschrieben werden?
Gruß,
Winfried
Antworten
-
Mit der Deserialize-Methode wird ein (neues) Objekt erzeugt. Das wird nichts überschrieben. Die nicht serialisierten Daten haben in dem neuen Objekt den Standardwert. Wenn Du zwei Objekte zusammenführen willst, dann kannst Du entweder per Code kopieren oder ein Objekt in das andere Objekt einbauen, z.B. als eingebettetes Objekt. Auf die Eigenschaften des eingebetteten Objekt kann man entweder zweistufig zugreifen oder die Werte “durchreichen” in entsprechende Eigenschaften des “äußeren” Objektes.--
Viele Gruesse
Peter- Als Antwort markiert WiWo Montag, 19. November 2012 13:12
Alle Antworten
-
Mit der Deserialize-Methode wird ein (neues) Objekt erzeugt. Das wird nichts überschrieben. Die nicht serialisierten Daten haben in dem neuen Objekt den Standardwert. Wenn Du zwei Objekte zusammenführen willst, dann kannst Du entweder per Code kopieren oder ein Objekt in das andere Objekt einbauen, z.B. als eingebettetes Objekt. Auf die Eigenschaften des eingebetteten Objekt kann man entweder zweistufig zugreifen oder die Werte “durchreichen” in entsprechende Eigenschaften des “äußeren” Objektes.--
Viele Gruesse
Peter- Als Antwort markiert WiWo Montag, 19. November 2012 13:12
-
Mit der Deserialize-Methode wird ein (neues) Objekt erzeugt. Das wird nichts überschrieben. Die nicht serialisierten Daten haben in dem neuen Objekt den Standardwert. Wenn Du zwei Objekte zusammenführen willst, dann kannst Du entweder per Code kopieren oder ein Objekt in das andere Objekt einbauen, z.B. als eingebettetes Objekt. Auf die Eigenschaften des eingebetteten Objekt kann man entweder zweistufig zugreifen oder die Werte “durchreichen” in entsprechende Eigenschaften des “äußeren” Objektes. Schau Dir mal ein typisiertes DataSet zur Anregung an.--
Viele Gruesse
Peter -
OK, hab ich mir eigentlich schon gedacht..
ne andere Frage in dem Zusammenhang:
Ich wollte auch eine HashTable in der serialisierten Klasse habe, musste allerdings feststellen, dass das mit dem XML-Serialisierer nicht geht (mit dem BinaryFormattter allerdings schon).
Gibt's ne einfache Möglichkeit, Hashtables auch als XML zu serialisieren?
Gruß,
Winfried