Settings - Klasse speichern

26/06/2008 - 12:08 von Werner Perplies | Report spam
ging leider versehentlich in die falsche Gruppe!

Hi,

Nachdem ich auf mein Problem "Serialize" noch keine Antwort bekommen habe,
die mein Problem löst, bin ich den ursprünglich angedachten Weg gegangen
und wieder in einer Sackgasse gelandet.

Ursprünglich wollte ich ja meine Klasse direkt in den Settigns speichern,
fand aber in der Typauswahl den entsprechenden Typ nicht.

Nachdem ich bei Microsoft diesen Hinweis

"Der Designer zeigt keine Eigenschaften an, deren Typ innerhalb der
aktuellen Assembly definiert ist. Dies ist eine bekannte Einschrànkung."

gefunden habe, habe ich also die entsprechenden Klassen in eine
Klassenbibliothek ausgelagert.

Anschließend stand mir dann auch die Klasse als Typ im Settings zur
Verfügung.

Die Zuweisung klapt auch, nur nach den erneuten Einlesen des Settings ist
die Klasse wieder leer.

Es gibt keinerlei Fehlermeldeung.

// Designsettings enthàlt lediglich
[Serializable()]
public class DesignSettings
{
public List<DsForm> Forms = new List<DsForm>();
}
DsForm enthàlt Size, Location, diverse Fonts und Colors und
String-Collections.


Kurzes Testbeispiel:
DesignSettings ds = new DesignSettings();
if (Properties.Settings.Default.MyDesignSettings == null)
{
DsForm dsf = new DsForm();
dsf.Size = this.Size;
dsf.Location = this.Location;
ds.Forms.Add(dsf);
Properties.Settings.Default.MyDesignSettings = ds;
DesignSettings ds2 = Properties.Settings.Default.MyDesignSettings;
// ds2 enthàlt die Klasse wie erwartet
// speichern
Properties.Settings.Default.Save();
// neu einlesen
Properties.Settings.Default.Reload();
DesignSettings ds3 = Properties.Settings.Default.MyDesignSettings;
// ds3 ist null!!!
}

Also, wie speichere ich die Daten richtig ab?

Oder muss ich mir tatsàchlich eine eigene (eigenes Format) Settings-Datei
erzeugen?

Danke für Hilfe.

Gruß
Werner
www.weepee.eu

Werner
www.weepee.eu
 

Lesen sie die antworten

#1 Werner Perplies
26/06/2008 - 16:12 | Warnen spam
Hi,

irgendwie scheine ich alleine solche Probleme zu haben. Falls aber nicht
möchte ich kurz meine letzen Erkenntnisse zu diesem Thema beitragen:

1. Das Abspeichern von Klassen in den Settings scheint nur unter
eingeschrànkten Bedingungen zu funktionieren:
Enthàlt das Objekt weitere Objekte, funktioniert das Ganze offensichtlich
nur, wenn die Objekte einen Stabdardkonstruktor haben:
Zm Beispiel;
Size geht,
Point geht;
Color geht;
Font geht nicht.

Die eigentliche Gemeinheit:

Kommt ein nicht geignetes Objekt vor, wird die Klasse _ohne_ jeglichen
Fehlerhinweis nicht gespeichert.

Wie behandle ich jetzt also Objekte ohne Standardkonstruktor?


Gruß
Werner
www.weepee.eu

Ähnliche fragen