1. 程式人生 > >C#序列化的最簡單辦法

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();
            }