Ich habe eine Liste von Objekten und muss diese irgendwo auf meinem Computer speichern. Ich habe einige Foren gelesen und weiß, dass das Objekt sein muss Serializable
. Aber es wäre schön, wenn ich ein Beispiel bekommen könnte. Zum Beispiel, wenn ich Folgendes habe:
[Serializable]
public class SomeClass
{
public string someProperty { get; set; }
}
SomeClass object1 = new SomeClass { someProperty = "someString" };
Aber wie kann ich object1
irgendwo auf meinem Computer speichern und später abrufen?
c#
serialization
stream
Tono Nam
quelle
quelle
Antworten:
Sie können Folgendes verwenden:
quelle
string attributeXml = string.Empty;
inDeSerializeObject
nie benutzt wird;)Ich habe gerade einen Blog-Beitrag über das Speichern der Daten eines Objekts in Binary, XML oder Json geschrieben . Sie haben Recht, dass Sie Ihre Klassen mit dem Attribut [Serializable] dekorieren müssen, jedoch nur, wenn Sie die binäre Serialisierung verwenden. Möglicherweise bevorzugen Sie die Verwendung der XML- oder Json-Serialisierung. Hier sind die Funktionen, um dies in den verschiedenen Formaten zu tun. Weitere Informationen finden Sie in meinem Blogbeitrag.
Binär
XML
Erfordert, dass die System.Xml-Assembly in Ihr Projekt aufgenommen wird.
Json
Sie müssen einen Verweis auf die Newtonsoft.Json-Assembly hinzufügen, der im Json.NET NuGet-Paket erhältlich ist .
Beispiel
quelle
Sie müssen zu etwas serialisieren: Wählen Sie Binär oder XML (für Standard-Serialisierer) oder schreiben Sie einen benutzerdefinierten Serialisierungscode, um in eine andere Textform zu serialisieren.
Sobald Sie dies ausgewählt haben, ruft Ihre Serialisierung (normalerweise) einen Stream auf, der in eine Art Datei schreibt.
Also, mit Ihrem Code, wenn ich XML-Serialisierung verwenden würde:
Dann, um zu deserialisieren:
HINWEIS: Dieser Code wurde nicht kompiliert, geschweige denn ausgeführt. Möglicherweise liegen einige Fehler vor. Dies setzt auch eine sofort einsatzbereite Serialisierung / Deserialisierung voraus. Wenn Sie ein benutzerdefiniertes Verhalten benötigen, müssen Sie zusätzliche Arbeiten ausführen.
quelle
1. Objekt aus Datei wiederherstellen
Von hier aus können Sie ein Objekt auf zwei Arten aus einer Datei deserialisieren.
Lösung 1: Lesen Sie die Datei in eine Zeichenfolge und deserialisieren Sie JSON in einen Typ
Lösung 2: Deserialisieren Sie JSON direkt aus einer Datei
2. Objekt in Datei speichern
von hier aus können Sie ein Objekt auf zwei Arten in eine Datei serialisieren.
Lösung 1: Serialisieren Sie JSON in eine Zeichenfolge und schreiben Sie dann eine Zeichenfolge in eine Datei
Lösung 2: Serialisieren Sie JSON direkt in eine Datei
3. Extra
Sie können Newtonsoft.Json von NuGet herunterladen, indem Sie den folgenden Befehl ausführen
quelle
** 1. Konvertieren Sie die JSON-Zeichenfolge in base64string und schreiben Sie sie oder hängen Sie sie an eine Binärdatei an. 2. Lesen Sie base64string aus der Binärdatei und deserialisieren Sie mit BsonReader. ** **.
quelle
Sie können JsonConvert aus der Newtonsoft-Bibliothek verwenden. So serialisieren Sie ein Objekt und schreiben in eine Datei im JSON-Format:
Und um es wieder in ein Objekt zu deserialisieren:
quelle