冰楓論壇

標題: [C#] 序列化 [打印本頁]

作者: whitefox    時間: 2023-5-30 15:33
標題: [C#] 序列化
序列化可以將記憶體中的物件(或物件圖)序列化為資料流程,並保存到磁片上進行持久化;還可以將資料流程反序列化為物件,實現物件的還原。

序列化和反序列化用於將一個物件保存到檔案,和從檔案讀取。

首先加入這兩命名空間
  1. using System.IO;
  2. using System.Runtime.Serialization.Formatters.Binary;
複製代碼
宣告一個要序列化的類別
  1. [Serializable()] // 想要序列化的類別必須加入此特性標記
  2. public class SerializedClass
  3. {
  4.     public int a;
  5.     public string b;
  6.     public SerializedClass(int a, string b)
  7.     {
  8.         this.a = a;
  9.         this.b = b;
  10.     }
  11. }
複製代碼
序列化方法 - 將物件以二進制檔案儲存
  1. public void Serialize()
  2. {
  3.     SerializedClass sc = new SerializedClass(1, "Item");
  4.     Stream fs = File.Create("SaveFile.txt");
  5.     BinaryFormatter bf = new BinaryFormatter();
  6.     bf.Serialize(fs, sc);
  7.     fs.Close();
  8. }
複製代碼
反序列化方法 - 從二進制檔案取回物件,這邊將取回物件做強制轉型
  1. public void DeSerialize()
  2. {
  3.     SerializedClass sc;
  4.     Stream fs = File.Create("SaveFile.txt");
  5.     BinaryFormatter bf = new BinaryFormatter();
  6.     sc = (SerializedClass)(bf.Deserialize(fs));
  7.     fs.Close();
  8. }
複製代碼





歡迎光臨 冰楓論壇 (https://bingfong.com/) Powered by 冰楓