Export object collection, XML-Datei
Verwendung von C#...ich habe eine kleine app, die erstellt Objekte aus einer Klasse und fügt Sie in eine Objekt-Auflistung, und es hat einige UI-Zeug auf dem Weg, um die Anzeige bestimmter Werte aus dem aktuell ausgewählten Objekt in die Sammlung (Mit WPF-UI). So möchte ich hinzufügen, dass die Fähigkeit, damit der Benutzer Sie seine Objekt-Auflistung in eine Datei, so können Sie laden Sie es wieder, das nächste mal Sie die app laufen.
Ich vermute, XML -, ist eine offensichtliche Weg zu gehen, aber ich weiß nichts darüber, wie es zu tun. Also, wie Sie exportieren oder dump eine Sammlung von Objekten in eine xml-Datei, und dann, vielleicht noch wichtiger, wie würde ich dann gelesen, dass die XML-Datei zurück in meine app neu erstellen der Kollektion?
Hier ist ein screenshot von der app
Ich glaube, Sie haben, einfach durch einen Blick auf die Antworten. Allerdings habe ich nicht die Zeit, um in diesem Teil meiner app nur noch. Ich sicher, planen aber auch, weil ich wissen will, wie dies zu tun.
InformationsquelleAutor MattSlay | 2009-02-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
System.- Laufzeit.Serialisierung ist dein Freund hier, wenn Sie sich entscheiden, gehen für XML.
In einer meiner test-apps, die ich manchmal in der Lage sein müssen serialise ein Objekt als XML-Datei, sodass ich es sehen kann alle offline. Hier ist das snippet, das ich benutze (nicht optimiert, in irgendeiner Weise, so schnell klopfte eines Tages zusammen, und es hat funktioniert wie ich es brauchte).
Danach, es ist trivial zu Spritzen, die Daten in einer Datei.
Hinweise :
Ich musste in der Lage sein, um die XML-Inhalt als string, so konnte ich beibehalten, es eine von mehreren Möglichkeiten. Aufbau einer Methode, um direkt auf die Festplatte wäre auch einfach, wenn es das ist, was Sie brauchen.
Obwohl dies für mich funktioniert, müssen Sie möglicherweise zu zwicken, um Ihre eigenen Anforderungen.
InformationsquelleAutor ZombieSheep
XML-Serialisierung ist OK und gut für viele Situationen, aber die Ausgabe wird ein wenig sperrig aufgrund der XML-inhärenten Gemeinkosten. In dieser situation, wo der Inhalt der Datei nicht brauchen, um Menschen lesbar ist, so ist dies eröffnet weitere Optionen.
JSON-Serialisierung wird helfen, die Größe der Datei nach unten. JavaScriptSerializer gefunden werden können in-System.Web.Script.Serialisierung (System.Web.Extensions.dll).
In dem Beispiel unten habe ich eine Typisierte generische Liste von ConfigurationItem. Configuration item ist wie jede andere Klasse, aber die Eigenschaften sollten öffentlich sein für Sie serialisiert werden.
InformationsquelleAutor DMCS
Das problem mit dem Serialisieren in XML ist, dass, wenn Ihre Klasse die serialisierten änderungen (neue Eigenschaft), dann die xml nicht verwendet werden, um erstellen Sie die Instanz der Klasse.
Wenn die Klasse ist relativ einfach (oder sogar, wenn es nicht ist) könnte man es manuell machen:
Dieser code ist rau, aber es würde etwas erzeugen, wie:
was meinst du?
InformationsquelleAutor benPearce
Es gibt eine Tonne von Themen, die auf StackOverflow über die XML-Serialisierung, darunter ein paar ausgezeichnete Beiträge über einige versteckte gotchyas:
Speichern von Datenstrukturen mit Hilfe der Serialisierung
Serialisierung Gotchyas
InformationsquelleAutor Matt Jordan