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
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.
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));
Empfohlene Beiträge
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 erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden