Heim >Backend-Entwicklung >C++ >Wie kann ich serialisierbare Objekte in .NET mithilfe der Binär-, XML- und JSON-Serialisierung beibehalten und wiederherstellen?
Beibehalten und Wiederherstellen serialisierbarer Objekte mithilfe der Binär-, XML- und JSON-Serialisierung in .NET
Durch die Objektserialisierung in .NET können Objekte im persistenten Speicher gespeichert und später in ihrer ursprünglichen Form abgerufen werden. Um ein Objekt zu serialisieren, muss seine Klasse mit [Serializable]
markiert sein. Diese Anmerkung ist bei der Verwendung der binären Serialisierung von entscheidender Bedeutung, bei der XML- oder JSON-Serialisierung jedoch nicht erforderlich.
Im Folgenden finden Sie Beispiele für Funktionen für die Binär-, XML- und JSON-Serialisierung:
Binäre Serialisierung:
<code class="language-csharp">public static void WriteToBinaryFile<T>(string filePath, T objectToWrite, bool append = false) { using (Stream stream = File.Open(filePath, append ? FileMode.Append : FileMode.Create)) { var binaryFormatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); binaryFormatter.Serialize(stream, objectToWrite); } } public static T ReadFromBinaryFile<T>(string filePath) { using (Stream stream = File.Open(filePath, FileMode.Open)) { var binaryFormatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); return (T)binaryFormatter.Deserialize(stream); } }</code>
XML-Serialisierung:
<code class="language-csharp">public static void WriteToXmlFile<T>(string filePath, T objectToWrite, bool append = false) where T : new() { TextWriter writer = null; try { var serializer = new XmlSerializer(typeof(T)); writer = new StreamWriter(filePath, append); serializer.Serialize(writer, objectToWrite); } finally { if (writer != null) writer.Close(); } } public static T ReadFromXmlFile<T>(string filePath) where T : new() { TextReader reader = null; try { var serializer = new XmlSerializer(typeof(T)); reader = new StreamReader(filePath); return (T)serializer.Deserialize(reader); } finally { if (reader != null) reader.Close(); } }</code>
JSON-Serialisierung (erfordert Newtonsoft.Json NuGet-Paket):
<code class="language-csharp">public static void WriteToJsonFile<T>(string filePath, T objectToWrite, bool append = false) where T : new() { TextWriter writer = null; try { var contentsToWriteToFile = JsonConvert.SerializeObject(objectToWrite); writer = new StreamWriter(filePath, append); writer.Write(contentsToWriteToFile); } finally { if (writer != null) writer.Close(); } } public static T ReadFromJsonFile<T>(string filePath) where T : new() { TextReader reader = null; try { reader = new StreamReader(filePath); var fileContents = reader.ReadToEnd(); return JsonConvert.DeserializeObject<T>(fileContents); } finally { if (reader != null) reader.Close(); } }</code>
Verwendungsbeispiel:
<code class="language-csharp">// 将someClass变量的内容写入文件。 WriteToBinaryFile<SomeClass>("C:\someClass.txt", object1); // 将文件内容读回变量。 SomeClass object1 = ReadFromBinaryFile<SomeClass>("C:\someClass.txt");</code>
Das obige ist der detaillierte Inhalt vonWie kann ich serialisierbare Objekte in .NET mithilfe der Binär-, XML- und JSON-Serialisierung beibehalten und wiederherstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!