Nochmals Settings und Serialize

17/07/2008 - 08:46 von Werner Perplies | Report spam
Hi,

ich habe immer noch sporadisch Probleme mit Serialisierung und Settings.

Irgendwie schaue ich noch nicht durch:

1. Settings:
Das bestimmte Anwenderobjekte ohne Fehlermeldung nicht gespeichert werden,
hatte ich ja schon früher erwàhnt.
Da hilft wohl nur "Trial and Error"!
Jetzt bin ich über ein anderes Problem gestolpert:
Typ String:
Ich habe erwartet, dass ich alles speichern kann, was man auch im String
speichern kann, also, dass der wieder eingelesene String mit dem
gespeicherten String identisch ist.
Jetzt habe ich das folgende, für mich nicht vorausschaubare Ergebnisse:

Typ string:
Properties.Settings.Default.DefaultDelimiterSelected

"" direkt im Applikationssettings gespeichert, ist nach dem Einlesen
ok.

In der Applikation:
Properties.Settings.Default.DefaultDelimiterSelected = ""

Nach dem Wiedereinlesen, sporadisch:
1. ""
2. ""
3. " "

Was könnte ich ich hier falsch machen?
XML-Serialisierung:
In einer Klasse ein String s:

s = "";
nach Serialisierung und Deserialisierung:
s -> ""

s= "aa";
nach Serialisierung und Deserialisierung:
s -> "aa";

Muss ich also auf Settings und XML-Serialisierung verzichten, oder
alternativ Sonderfàlle heraustesten, und gibt es eine Möglichkeit, solche
Probleme zu vermeiden?

Im Moment umgehe ich solche Probleme durch binàre Serialisation mit den
damit verbundenen Nachteilen.

Danke im Voraus für Hilfestellung.

VS2005

Gruß
Werner
www.weepee.eu
 

Lesen sie die antworten

#1 Frank Dzaebel
17/07/2008 - 11:16 | Warnen spam
Hallo Werner,

Properties.Settings.Default.DefaultDelimiterSelected = ""



meinst Du vielleicht: @"" ?
Wenn Du wirklich "" meinst, so liegt das letztlich an
der Indentation im gespeicherten XML, denn das wird quasi:

<value>
</value>
^^^^ <- diese Spaces würden mit deserialisiert werden.

gespeichert. Nun könnte man natürlich nur wegen
eines einzelnen Zeichens in der partiellen von
ApplicationSettingsBase abgeleiteten Settings-Klasse
die Methode Save und Load überschreiben und dort
jeweils die PropertyValues vor dem Serialisieren mit
Zeichen am Anfang und Ende versehen und beim
Deserialisieren wieder herausnehmen. Aber das könntest
Du doch auch in dem bewusst nur für eine Prop erkennen
und somit bereinigen?


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen