Hallo,
ich möchte gerne die Instanz einer Klasse in einer Datei abspeichern und wieder laden können, dafür habe ich die Serialize Methode von C# entdeckt, die ich sehr gerne nutzen würde. Ich habe mir deshalb das tutorial aus der C-Sharp-Library.de angeschaut und es entsprechend angepasst. Doch nun habe ich folgendes Problem (was z.T. an der Architektur des Projektes liegt *denk*).
Die Instanz ist eine Liste von Elementen, die von einer abstrakten Klasse abgeleitet wurden. Diese abgeleiteten Klassen befinden sich in dem ausführbaren Projekt. Die Serialize Methode befindet sich widerum in einem Paket, dass per DLL Referenz hinzugeladen wird.
Und genau aus diesem Grund bekomme ich folgende Fehlermeldung:
Quelltext
1:
| System.InvalidOperationException: There was an error generating the XML document. ---> System.InvalidOperationException: The type User.CLongLineSegment was not expected. Use the XmlInclude or SoapInclude attribute to specify types that are not known statically. |
User.CLongLineSegment ist wiegesagt einer der Typen, der in dem .exe Projekt steckt und abgeleitet wurde.
Ich habe eigentlich gehofft, dass das Voranstellen von
C#-Quelltext
1:
| [XmlInclude(typeof(CImageObject))] |
da Abhilfe schafft, aber leider war es nicht so. CImageObject ist wiegesagt die abstrakte Klasse von der User.CLongLineSegment abgeleitet wurde.
Kennt von euch jemand eine Lösung für das Problem? Oder muss ich die Export/Import Prozedur per Hand schreiben?