Zum Inhalt springen

Aus C# Xml Serialisieren


Empfohlene Beiträge

Geschrieben

Guten Tag,

seid Anfang der Woche beschäftige ich mich mit C#, ASP.Net.

Um mich in die Sprache einzuarbeiten habe ich mir ein Beispielprogramm geschrieben.

Prinzip: 2 Textboxen dienen als Eingabe für Attribute, diese werden dann einem Objekt zugeordnet. Das Objekt soll dann Serialisiert werden und über eine ListBox wieder abrufbar sein. Sprich, das Objekt wird in einer Xml dauerhaft gespeichert. Als vorlage bin ich folgendem Code nachgegangen:

C# Klassen serialisieren. Namespace: System.Xml.Serialization

Ein Button, "Speichern" dient mir jetzt als Auslöser Items.Add(), für die ListBox und als Serialisierung bzw. Speicherung in Xml (dafür nutze ich XMLSerializer).

Soweit so gut, vom Prinzip her funktioniert das alles, nur möchte ich jetzt ja nicht nur ein Objekt speichern, vllt 2 oder 1000.

D.h. jedes mal wenn ich auf "Speichern" klicke soll dem Xml-Document ein Objekt hinzugefügt werden. Im enteffekt hätte ich dann eine Auflistung aller gespeicherten Obkjekte.

Und hier liegt mein Problem, das erste Objekt wird immer überschrieben, ich weiß nicht wie ich ein neues Objekt der Auflistung anhängen kann. Die Codes die ich im Netz gefunden habe beschreiben nur das prinzipielle Speichern in Xml, aber nicht wie ich per Button_Click ein neues Objekt hinzufüge.

Das ist sicher ein triviales Problem, aber ich steh hier echt auf dem Schlauch, vllt hatte von euch jemand schonmal selbiges Problem oder zumindest eine zündende Idee für mich.

Danke! :)

Mfg, mrhouse

Geschrieben

Das ist normales Verhalten der Serialisier-Funktion. Ich hab das in nem Projekt so gelöst: Beim Start alles in ein Array des Objekts deserialisiert, dabei den Index des Arrays mitgezählt. Beim Speichern das neue Objekt in den nächsten freien Index gesteckt und dann das komplette Array serialisiert. Ist zwar etwas ressourcenaufwengiger als nur das neue Objekt irgentwie zu serialisieren, aber für meine Zwecke hat's gereicht.

Geschrieben

Du könntest den Weg über eine eigene Collection gehen. Wobei auch List<Person> funktionieren sollte.


public class PersonList : List<Person>

{

}

Dann einfach den Typ im XmlSerializer angeben:

XmlSerializer serializer = new XmlSerializer(typeof(PersonList));

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...