Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Eigene serialisierbare!! Collection?
average
myCSharp.de - Member



Dabei seit:
Beiträge: 3

Themenstarter:

Eigene serialisierbare!! Collection?

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
talla
myCSharp.de - Experte

Avatar #avatar-3214.jpg


Dabei seit:
Beiträge: 7290
Herkunft: Esslingen

beantworten | zitieren | melden

Hallo,

Du kannst IXmlSerializable implementieren.
Baka wa shinanakya naoranai.

Mein XING Profil.
private Nachricht | Beiträge des Benutzers
Xynratron
myCSharp.de - Member



Dabei seit:
Beiträge: 1184

beantworten | zitieren | melden

huhu


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

:-)

Xynratron
Herr, schmeiss Hirn vom Himmel - Autsch!
Zitat von herbivore
Die Erfahrung zeigt immer wieder, dass viele Probleme sich in Luft auslösen, wenn man sich den nötigen Abstand bzw. Schlaf gönnt.
private Nachricht | Beiträge des Benutzers
talla
myCSharp.de - Experte

Avatar #avatar-3214.jpg


Dabei seit:
Beiträge: 7290
Herkunft: Esslingen

beantworten | zitieren | melden

Das Serializable Attribut hilft ja auch so besonders viel bei der XML Serialisierung...
Baka wa shinanakya naoranai.

Mein XING Profil.
private Nachricht | Beiträge des Benutzers
average
myCSharp.de - Member



Dabei seit:
Beiträge: 3

Themenstarter:

Eigene serialisierbare!! Collection?

beantworten | zitieren | melden

hi
genau das (also "List<Auto>") habe ich gesucht! Danke!
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
kleines_eichhoernchen
myCSharp.de - Member

Avatar #avatar-2079.jpg


Dabei seit:
Beiträge: 4055
Herkunft: Ursprünglich Vogtland, jetzt Much

beantworten | zitieren | melden

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...
private Nachricht | Beiträge des Benutzers
LastGentleman
myCSharp.de - Member

Avatar #avatar-1696.jpg


Dabei seit:
Beiträge: 1274
Herkunft: Österreich

beantworten | zitieren | melden

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


alter Text:

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
private Nachricht | Beiträge des Benutzers