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));

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...