Laden...

Eigene serialisierbare!! Collection?

Erstellt von average vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.298 Views
A
average Themenstarter:in
3 Beiträge seit 2009
vor 14 Jahren
Eigene serialisierbare!! Collection?

Hallo,
ich möchte eine von der CollectionBase-Klasse abgeleitete Auflistung XML-serialisieren.

Beispiel:
Ich habe eine Klasse Auto, die viele öffentliche Eigenschaften besitzt. Wenn ich jetzt eine Klasse "AutoCollection" erstelle und diese von CollectionBase ableite, dann habe ich alle Auto-Objekte in der InnerList (welche privat ist, also nicht serialisierbar).

Wie kann ich die AutoCollection dennoch speichern / laden (per XML-Serialiserung)?

Hoffe das war jetzt einigermaßen verständlich 🙂

6.862 Beiträge seit 2003
vor 14 Jahren

Hallo,

Du kannst IXmlSerializable implementieren.

Baka wa shinanakya naoranai.

Mein XING Profil.

X
1.177 Beiträge seit 2006
vor 14 Jahren

huhu


[Serializeable]
public class AutoCollection : List<Auto> {}

😃

Xynratron

Herr, schmeiss Hirn vom Himmel - Autsch!

Die Erfahrung zeigt immer wieder, dass viele Probleme sich in Luft auslösen, wenn man sich den nötigen Abstand bzw. Schlaf gönnt.

6.862 Beiträge seit 2003
vor 14 Jahren

Das Serializable Attribut hilft ja auch so besonders viel bei der XML Serialisierung...

Baka wa shinanakya naoranai.

Mein XING Profil.

A
average Themenstarter:in
3 Beiträge seit 2009
vor 14 Jahren
Eigene serialisierbare!! Collection?

hi
genau das (also "List<Auto>") habe ich gesucht! Danke!

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo average,

wobei List<> an sich nicht als Oberklasse ausgelegt ist. In vielen Fällen fährt man daher mit Collection<T> besser, die genau fürs Erben gedacht ist.

herbivore

3.971 Beiträge seit 2006
vor 14 Jahren

Für XmlSerialisierung ist das [Serializeable]-Attribut absolut irrelevant.

Standard-Collections (oder ableitungen davon) funktionieren mit dem XmlSerializer. Probleme bekommst du bei HashTable bzw. Dictionary. Da gehts nur über das IXmlSerializable-Interface

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...

1.274 Beiträge seit 2005
vor 14 Jahren

tut mir Leid hab nicht genau aufgepasst, das Objekt das ich serializieren wollte war ein Proxy Objekt von WCF.

Gehts das auch ohne Ableitung?
Möchte eine Klasse mit einem Public Element List<Classname> serializieren, bekomme immer eine Fehlermeldung:

Message="Beim Generieren des XML-Dokuments ist ein Fehler aufgetreten."
Source="System.Xml"

InnerException: "Der Typ Team.Contracts.LoginTicket wurde nicht erwartet. Verwenden Sie das XmlInclude- oder das SoapInclude-Attribut, um Typen anzugeben, die nicht statisch sind."

"Das Problem kennen ist wichtiger, als die Lösung zu finden, denn die genaue Darstellung des Problems führt automatisch zur richtigen Lösung." Albert Einstein