whitefox 發表於 2023-5-30 15:33:47

[C#] 序列化

序列化可以將記憶體中的物件(或物件圖)序列化為資料流程,並保存到磁片上進行持久化;還可以將資料流程反序列化為物件,實現物件的還原。

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

首先加入這兩命名空間using System.IO;
using System.Runtime.Serialization.Formatters.Binary;宣告一個要序列化的類別 // 想要序列化的類別必須加入此特性標記
public class SerializedClass
{
    public int a;
    public string b;
    public SerializedClass(int a, string b)
    {
        this.a = a;
        this.b = b;
    }
}序列化方法 - 將物件以二進制檔案儲存public void Serialize()
{
    SerializedClass sc = new SerializedClass(1, "Item");
    Stream fs = File.Create("SaveFile.txt");
    BinaryFormatter bf = new BinaryFormatter();
    bf.Serialize(fs, sc);
    fs.Close();
}反序列化方法 - 從二進制檔案取回物件,這邊將取回物件做強制轉型public void DeSerialize()
{
    SerializedClass sc;
    Stream fs = File.Create("SaveFile.txt");
    BinaryFormatter bf = new BinaryFormatter();
    sc = (SerializedClass)(bf.Deserialize(fs));
    fs.Close();
}
頁: [1]
查看完整版本: [C#] 序列化