Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[NET 4] XML Serialisierung: Zur Laufzeit festlegen, welche Objekt-Eigenschaften gespeichert werden sollen

6 views
Skip to first unread message

Christian Treffler

unread,
Mar 3, 2012, 3:21:47 PM3/3/12
to
Hallo,

ich benutze XML-Serialisierung, um im Falle einer Exception die
aktuellen Objekte zum Debuggen abzuspeichern.

Außerdem speichere ich auch Einstellungen im XML-Format, wobei eine
Einstellungs-Datei automatisch aus einem Standard-Objekt erstellt wird,
wenn noch keine existiert.

Das stellt mich vor ein interessantes Problem: Wie kann ich zur Laufzeit
festlegen, welche public Eigenschaften serialisiert werden sollen?
Beim Exception-Handling sollen alle Eigenschaften eines Objekts
gesichert werden. Beim Erstellen einer Einstellungs-Datei jedoch nur die
dafür sinnvollen Eigenschaften.

Gibt es hier eine Möglichkeit?

CU,
Christian

Peter Fleischer

unread,
Mar 4, 2012, 6:09:25 AM3/4/12
to
Hi Christian,
was verstehst Du unter "sinnvollen Eigenschaften"? Wer entscheidet über den
Sinn oder Unsinn einer Eigenschaft?

--
Viele Gruesse
Peter

Christian Treffler

unread,
Mar 4, 2012, 9:04:34 AM3/4/12
to
Peter Fleischer schrieb:

> Hi Christian,
> was verstehst Du unter "sinnvollen Eigenschaften"? Wer entscheidet über den
> Sinn oder Unsinn einer Eigenschaft?

Die Eigenschaften, bei denen ich es für sinnvoll halte, sie in einer
Settings-Daetei abzuspeichern und damit außerhalb des Programms zum
Ändern zugänglich zu machen.

Oder auch die Eigenschaften, bei denen ich es für sinnvoll halte, sie in
einem Logfile zum Debuggen einsehen zu können.

Wenn ich ein Objekt serialisiere, dann wird jede als public deklarierte
Eigenschaft serialisiert. Ich kann das in der Klasse mit einem
[XmlIgnoreAttribut] verhindern.

Ich möchte aber flexibler sein, nämlich zur Laufzeit bestimmen können,
welche Eigenschaften serialisiert werden, und welche nicht.

Die Frage ist: Geht das überhaupt?

CU,
Christian

Christian Treffler

unread,
Mar 5, 2012, 1:09:06 PM3/5/12
to
Christian Treffler schrieb:

> Das stellt mich vor ein interessantes Problem: Wie kann ich zur Laufzeit
> festlegen, welche public Eigenschaften serialisiert werden sollen?

Ich habe die Antowrt gefunden in:
http://bytes.com/topic/c-sharp/answers/445941-conditional-xml-serialization-runtime

Zitat:
| class Child
| {
| public string Name;
| public string Description;
| [XmlIgnore]
| public bool DescriptionSpecified;
| }
|
| The framework serialization process checks for a Boolean field with the same
| name as each field but suffixed with "Specified". If such a Boolean field
| exists, it will only serialize the original field if the Boolean field's
| value is 'true'.

CU,
Christian
0 new messages