三種序列化體式格式

2022-04-28 20:24:11 字數 2124 閱讀 4458

.net框架中供給了3中序列化的體式格式, 分別是:

1. binary serializer

若是須要序列化這個類的物件,那麼這個類必必要標識表記標幟為是可序列化的。須要用到特點 [serializable] (感化域是class, struct, enum, delegate)

若是某些變數不須要序列化, 或者不克不及序列化可以應用[nonserialized], (感化域是field)

須要重視, 若是類中應用了其它的類屬性,若是慾望它們能序列化,那麼其它的類也必須是可序列化的, 如下面類dethdisease

1 namespace serializationdemo 

2  14             set 

15              

18         }

19         public dethdisease disease 

20         

24         public string medicine 

25         

29         public person() 

30         

33         public bool live() 

34          

40     } 

41 }

二進位制序列化的**, 主如果這個binaryformatter.

1 iformatter formatter = new binaryformatter(); 

2 stream stream = new filestream("person", filemode.create, fileaccess.write, fileshare.none); 

3 formatter.serialize(stream, newperson); 

4 stream.close();

反序列化

1 iformatter formatter = new binaryformatter(); 

2 stream stream = new filestream("person", filemode.open, fileaccess.read, fileshare.read); 

3 newperson = (person)formatter.deserialize(stream); 

4 stream.close();

2. soap serializer

根蒂根基和上方的一樣,只是用到不合的iformatter實現,soapformatter

3. xml serializer

應用xml serializer, 不須要應用特點[serializable]

應用xml serializer, 有相干的一些其它特點來改變xml的輸出成果。

xmlroot: 感化於類根元素, 把握根元素的輸出

xmlelement: 感化於類的屬性或field

xmlattribute: 作為屬性輸出,而不是節點

xmlignore: 不輸出

xmltext: 必須是字串型別, 乙個類中只能有乙個這個特點, 沒有標籤包裹,也不作為屬性

xmlarray: 感化於陣列型別, 可以把握陣列的輸出

這裡是常用的序列化xml的核心辦法

1 public static string xmlserialize(t obj) 

2        

10           return xmlstring; 

11       }

12       public static t xmldeserialize(string xmlstring) 

13        

23           } 

24           return t; 

25       }

三種體式格式鬥勁:

binary體式格式效力最高,可讀性不如後兩種好。

soap體式格式可以用於跨平台傳輸, xml體式格式簡單易用,用於法度內部應用,靈活便利。

相干源**: serializationdemo

C 的三種序列化方法

序列化是將乙個物件轉換成位元組流以達到將其長期儲存在記憶體 資料庫或檔案中的處理過程。它的主要目的是儲存物件的狀態以便以後需要的時候使用。與其相反的過程叫做反序列化。為了序列化乙個物件,我們需要乙個被序列化的物件,乙個容納被序列化了的物件的 位元組 流和乙個格式化器。進行序列化之前我們先看看syst...

C 的三種序列化方法

序列化是將乙個物件轉換成位元組流以達到將其長期儲存在記憶體 資料庫或檔案中的處理過程。它的主要目的是儲存物件的狀態以便以後需要的時候使用。與其相反的過程叫做反序列化。為了序列化乙個物件,我們需要乙個被序列化的物件,乙個容納被序列化了的物件的 位元組 流和乙個格式化器。進行序列化之前我們先看看syst...

C 的三種序列化方法

序列化是將乙個物件轉換成位元組流以達到將其長期儲存在記憶體 資料庫或檔案中的處理過程。它的主要目的是儲存物件的狀態以便以後需要的時候使用。與其相反的過程叫做反序列化。為了序列化乙個物件,我們需要乙個被序列化的物件,乙個容納被序列化了的物件的 位元組 流和乙個格式化器。進行序列化之前我們先看看syst...