.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...