新聞中心
序列化技術(shù),就是將對(duì)象持久存儲(chǔ)。 可以這樣理解:序列化就是將對(duì)象占用的內(nèi)存的數(shù)據(jù)copy到持久存儲(chǔ)設(shè)備,比如硬盤(pán)。序列化有什么用呢?

兩點(diǎn)作用:
1、持久的存儲(chǔ)對(duì)象狀態(tài);
2、分布式運(yùn)算中傳遞數(shù)據(jù)的底層實(shí)現(xiàn)。
.Net框架封裝的序列化技術(shù)包含兩種,即 二進(jìn)制序列化 和 xml序列化
(以下代碼都要求被序列化的對(duì)象的類型使用Serializable特征類)
二進(jìn)制序列化的實(shí)現(xiàn) (using System.Runtime.Serialization.Formatters.Binary;)
序列化代碼:
- //打開(kāi)文件流
- FileStream fs = new FileStream(保存序列化數(shù)據(jù)的文件路徑, FileMode.OpenOrCreate);
- //創(chuàng)建二進(jìn)制序列化對(duì)象
- BinaryFormatter bf = new BinaryFormatter();
- //調(diào)用二進(jìn)制序列化對(duì)象的序列化方法執(zhí)行序列化操作
- bf.Serialize(fs, 被序列化的對(duì)象);
- //關(guān)閉文件流
- fs.Close();
反序列化代碼:
- //打開(kāi)文件流
- FileStream fs = new FileStream(保存序列化數(shù)據(jù)的文件路徑, FileMode.OpenOrCreate);
- //創(chuàng)建二進(jìn)制序列化對(duì)象
- BinaryFormatter bf = new BinaryFormatter();
- //調(diào)用二進(jìn)制序列化對(duì)象的反序列化方法執(zhí)行反序列化操作
- 從文件中反序列化得到的對(duì)象 = bf.Deserialize(fs) as 被序列化對(duì)象的類型;
- //關(guān)閉文件流
- fs.Close();
XML序列化的實(shí)現(xiàn)(using System.Xml.Serialization;)
序列化代碼:
- //打開(kāi)文件流
- FileStream fs = new FileStream(保存序列化數(shù)據(jù)的文件路徑, FileMode.OpenOrCreate);
- //創(chuàng)建XML序列化對(duì)象
- XmlSerializer xs = new XmlSerializer(typeof(被序列化對(duì)象的類型));
- //調(diào)用XML序列化對(duì)象的序列化方法執(zhí)行序列化操作
- xs.Serialize(fs, 被序列化的對(duì)象);
- //關(guān)閉文件流
- fs.Close();
反序列化代碼:
- //打開(kāi)文件流
- FileStream fs = new FileStream(保存序列化數(shù)據(jù)的文件路徑, FileMode.OpenOrCreate);
- //創(chuàng)建XML序列化對(duì)象
- XmlSerializer xs = new XmlSerializer(typeof(被序列化對(duì)象的類型));
- //調(diào)用XML序列化對(duì)象的反序列化方法執(zhí)行反序列化操作
- 從文件中反序列化得到的對(duì)象 = xs.Deserialize(fs) as 被序列化對(duì)象的類型;
- //關(guān)閉文件流
- fs.Close();
當(dāng)然這里所提供的是序列化和反序列化的默認(rèn)實(shí)現(xiàn),能應(yīng)付大多數(shù)運(yùn)用。 特殊情況可以還需要重寫(xiě)序列化的默認(rèn)實(shí)現(xiàn)。MSDN里面也有較詳細(xì)的示例代碼。
新聞名稱:談?wù)勑蛄谢P(guān)于.net中的二進(jìn)制序列化和xml序列化
文章出自:http://m.fisionsoft.com.cn/article/dpppdph.html


咨詢
建站咨詢
