Entwickler-Ecke

IO, XML und Registry - Button Serialisieren


CASS - Mo 02.04.07 14:55
Titel: Button Serialisieren
Hallo Leute,

bin gerade verzweifelt am suchen. Ich erstelle eine art Creator Programm mit dem ich dann später Oberflächen designen kann. Dazu erzeuge ich zur Laufzeit Objecte (eigene Komponente von Button abgeleitet) die ich in einer Liste verwalte. Diese kann ich dann frei auf dem Formular herumschieben und verändern.

Jetzt zu meinem Problem. Natürlich möchte ich das Formular am Schluss dann speichern bzw. eigentlich nur die Liste die die Buttons enthält. Das klapt genau soweit, bis der erste Button zum serialisieren dran kommt (es gibt vor noch ein paar Felder ...). Dann meckert der Compiler das "Button" nicht serialisierbar ist.

Sowohl die Liste als auch meine abgeleitete Klasse sind mit [Serializable()] gekennzeichnet.

Was kann ich noch machen um die Liste zu speichern???

DANKE FÜR JEDE HILFE!


UGrohne - Mo 02.04.07 15:00

Die Klasse Button ist höchstwahrscheinlich nicht serialisierbar und damit ist das Ganze nicht serialisierbar. Um daran vorbeizukommen, leite Deine Klasse nicht von Button ab, sondern implementiere alle Eigenschaften, die Du abspeichern willst, in diese Klasse und füge eine weitere Variable vom Typ Button ein, wo Du dann den Button selbst instantiierst. Diese musst Du dann natürlich als [NonSerializable] kennzeichnen. Dann sollte das funktionieren.


CASS - Mo 02.04.07 16:19

Mist, kann ich die Komponente Button nicht irgendwie serialisierbar machen? Ist nämlich genau das was ich bräuchte. Ich muss sonst umständlich über den Index auf die extra Felder zugreifen die ich brauche ...


UGrohne - Mo 02.04.07 16:25

Was willst Du denn genau speichern? Zeig mal ein bisschen Code, damit man den einfachsten Weg finden kann.

Ich weiß nicht, ob man eine Klasse nachträglich serialisierbar machen kann, aber hilft es Dir etwas, wenn Du es andersrum machst? Also von Button ableiten und eine Eigenschaft SavedSettings implementieren, die Du dann serialisierst?


CASS - Mo 02.04.07 16:34

Danke für die Hilfe,

denkst du das die Image Komponente von VS 2005 Serialisierbar ist?

P.S. die zweite Variante würde auch funktionieren, wenn du mir erklärst wie man das macht.