程式是在記憶體中執行的,一旦結束程式資料也就消失了
有時候我們希望將某個物件的內容(資料)保存起來
所以必須將資料寫進檔案中,要使用的時候再重新讀進來
至於寫入的格式該怎麼訂,讀出的時候該怎麼分析這就依照個人喜好了
有時候這些步驟是很麻煩的
現在有一個叫 IFormatter 的東西可以簡單的完成這項任務
下面的例子僅將物件讀進資料流,再由資料流寫回物件
假設我們有一個自定類別,定義如下:
[Serializable]
public class MyObject
{
public int age = 0;
public string name = string.empty;
}
//這裡需注意的是,要使該類別的物件能被序列化,該類別必須加入[Serializable]屬性
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization;
using System.IO;
public class Main
{
public Main()
{
//處理序列化的物件
IFormatter formatter = new BinaryFormatter();
//要被序列化的物件
MyObject obj = new MyObject();
MemoryStream ms = new MemoryStream();
//將物件序列化
formatter .Serialize(ms, obj);
//還原序列化資料
ms.Position = 0;
MyObject obj2 = (MyObject)formatter.Deserialize(ms);
}
}
沒有留言:
張貼留言