mrhouse Geschrieben 7. August 2010 Geschrieben 7. August 2010 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 Zitieren
oxygen Geschrieben 8. August 2010 Geschrieben 8. August 2010 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. Zitieren
lbm1305 Geschrieben 8. August 2010 Geschrieben 8. August 2010 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)); Zitieren
Empfohlene Beiträge
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.