C 中的序列化和反序列化詳解

2022-03-28 16:08:37 字數 1835 閱讀 5160

序列化和反序列化,我們可能經常會聽到,其實通俗一點的解釋,序列化就是把乙個物件儲存到乙個檔案或資料庫欄位中去,反序列化就是在適當的時候把這個檔案再轉化成原來的物件使用。

1、在程序下次啟動時讀取上次儲存的物件的資訊

3、在分布式應用系統中傳遞資料

.............

常見的序列化的方法:

1、binaryformatter

2、soapformatter

3、xml序列化

用法:binaryformatter的用法大致如下:

view code

1

//binaryformatter將物件序列化到檔案中

2 list inputlist = new list() ;

3using (filestream fswriter = new filestream(@"

gz168168.tmp

",filemode.create,fileaccess.write))49

10//

binaryformatter將檔案中的資料反序列化出來

11 list outputlist = new list();

12using (filestream fsreader = new filestream(@"

gz168168.tmp

",filemode.open,fileaccess.read))

13

xml序列化的用法大致如下:

view code

1

//xml序列化到test.xml檔案中

2 list inputlist = new list() ;

3using (filestream fswriter = new filestream(@"

test.xml

",filemode.create,fileaccess.write))48

9//從test.xml檔案中反序列化出來

10 list outputlist = new list();

11using (filestream fsreader = new filestream(@"

test.xml

",filemode.open,fileaccess.read))

12

兩個的用法大致如下:

序列化:

1.得到乙個儲存物件的型別

2.建立乙個寫入檔案流

3.定義要序列化的型別

4.呼叫序列化方法

反序列化:

1.定義乙個裝載物件的型別

2.建立乙個讀出檔案流

3.定義要反序列化的型別

4.呼叫反序列化方法

binaryformatter類進行序列化和反序列化,以縮略型二進位制格式寫到乙個檔案中去,速度比較快,而且寫入後的檔案已二進位制儲存有一定的保密效果。標記為nonserialized的其他所有成員都能序列化。

採用xml序列化的方式只能儲存public的字段和可讀寫的屬性,對於private等型別的字段不能進行序列化。

二進位制序列化的優點:

1. 所有的類成員(包括唯讀的)都可以被序列化;

2. 效能非常好。

xml序列化的優點:

1. 互操作性好;

2. 不需要嚴格的二進位制依賴;

3. 可讀性強

soapformatter微軟淘汰了,,不能序列化泛型,這裡就不多講了。

**:

序列化和反序列化 C 序列化與反序列化。

序列化介紹 把物件用一種新的格式來表示。系列化只序列化資料。序列化不建議使用自動屬性 為什麼要序列化 將乙個複雜的物件轉換流,方便儲存與資訊交換。class program class person public int age 二進位制序列化 就是將物件變成流的過程,把物件變成byte class...

C 序列化和反序列化

binaryserialize serialize new binaryserialize book book serialize.deserialize book.write 3 測試用的 binaryserialize類 using system using system.collections...

C 序列化和反序列化

對stu類進行序列化和反序列化操作序列化所用到的stu類using system using system.collections.generic using system.linq using system.text public string stuname public int stuage ...