一:binaryformatter序列化
序列化簡單點來理解就是把記憶體的東西寫到硬碟中
,當然也可以寫到記憶體中
(這個內容我會在後面寫乙個例子
).而反序列化就是從硬碟中把資訊讀到記憶體中
.就這麼簡單,呵呵
,現在來看下面的例子吧!
在這篇文章中我將使用
binaryformatter
序列化類
book
作為例子
,希望大家能從例子中深刻體會什麼是序列化.
定義類book:
[serializable]
public class book}
在類的上面增加了屬性
:serializable.(
如果不加這個屬性
,將丟擲
serializationexception
異常).
通過這個屬性將
book
標誌為可以序列化的
.當然也有另一種方式使類
book
可以序列化
,那就是實行
iserializable
介面了.
在這裡大家要注意了
:serializable
屬性是不能被繼承的咯
!!!
如果你不想序列化某個變數
,該怎麼處理呢
?很簡單
,在其前面加上屬性
[nonserialized] .
比如我不想序列化
string author;
那我只需要
[nonserialized]
string author;
好了,現在就告訴大家怎麼實現序列化:
我們使用
namespace:
using system;
using system.io;
using system.runtime.serialization.formatters.binary;
首先建立
book
例項,like this:
book book = new book("day and night",
30.0f
, "bruce");
接著當然要建立乙個檔案了
,這個檔案就是用來存放我們要序列化的資訊了.
filestream fs = new filestream(@"c:/book.dat", filemode.create);
序列化的實現也很簡單
,like this:
binaryformatter formatter = new binaryformatter();
formatter.serialize(fs, book);
很簡單吧
!現在我列出整個原**
,包括反序列化.
static void
main
(string args)
book = null;
using(filestream fs = new filestream(@"c:/book.dat", filemode.open))}
有不對的地方
,請大家多多糾正.....
C 序列化技術詳解
序列化和反序列化我們可能經常會聽到,其實通俗一點的解釋 序列化就是把乙個物件儲存到乙個檔案或資料庫欄位中去,反序列化就是在適當的時候把這個檔案再轉化成原來的物件使用。序列化和反序列化最主要的作用有 1 在程序下次啟動時讀取上次儲存的物件的資訊 2 在不同的 或程序之間傳遞資料 3 在分布式應用系統中...
序列化與反序列化技術
將記憶體中的臨時資料,儲存到本地硬碟的技術 持久化之後,即使程式重啟,也不會造成資料的丟失和重置 建立student集合 list stus newarraylist stus.add newstudent 1 小馬 16 stus.add newstudent 2 小菜 16 stus.add n...
C 序列化 反序列化
序列化又稱序列化,是.net執行時環境用來支援使用者定義型別的流化的機制。其目的是以某種儲存形成使自定義物件持久化,或者將這種物件從乙個地方傳輸到另乙個地方。net框架提供了兩種序列化的方式 1 是使用binaryformatter進行序列化 2 使用soapformatter進行序列化 3 使用x...