C#序列化的最簡單辦法
用序列化來儲存程式狀態真是太簡單了
要是帶文件的程式。。其實把變數都存在一個類裡面。然後把類序列化直接儲存開啟。。是太安逸了。
下面說下步驟。首先宣告個類。。
class xxxx 之前加入 [Serializable]標誌
比如下面
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace FlashMail
{
[Serializable]
class FLashMailDb
{
public Hashtable send=new Hashtable();
public Hashtable mailtxt = new Hashtable();
public Hashtable addFile=new Hashtable ();
}
}
這樣 程式執行的時候 都弄到HASHTABLE裡面去,然後就是開啟和儲存的程式碼
儲存的程式碼 其中fm就是上面的含有[Serializable]的類
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
FileStream fileStream = new FileStream(saveFileDialog1.FileName, FileMode.Create);
BinaryFormatter b = new BinaryFormatter();
b.Serialize(fileStream, fm);
fileStream.Close();
}
下面是儲存的 其中fm就是上面的含有[Serializable]的類
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
FileStream fileStream = new FileStream(openFileDialog1.FileName, FileMode.Open, FileAccess.Read, FileShare.Read);
BinaryFormatter b = new BinaryFormatter();
fm = (FlashMail.FLashMailDb)b.Deserialize(fileStream);
fileStream.Close();
}