解析C BinaryFormatter實現序列化

2021-06-01 06:10:52 字數 1473 閱讀 7980

c# binaryformatter實現序列化,我們知道在

.net

框架裡提供了

c# binaryformatter

,那麼他是如何實現序列化操作的呢,首先我們來看看

c# binaryformatter

的概念以及作用。

c# binaryformatter的介紹:

binaryformatter使用二進位制格式化程式進行序列化。您只需建立乙個要使用的流和格式化程式的例項,然後呼叫格式化程式的 

serialize 

方法。流和要序列化的物件例項作為引數提供給此呼叫。類中的所有成員變數(甚至標記為 

private 

的變數)都將被序列化。

c# binaryformatter使用例項:

首先我們建立乙個類:

1 [serializable]  

2 public class myobject 

3   

serializable屬性用來明確表示該類可以被序列化。同樣的,我們可以用

nonserializable

屬性用來明確表示類不能被序列化。接著我們建立乙個該類的例項,然後序列化,並存到檔案裡持久:

7 myobject obj = new myobject();  

8 obj.n1 = 1;  

9 obj.n2 = 24;  

10 obj.str = "一些字串

";  

11 iformatter formatter = new binaryformatter();  

12 stream stream = new filestream("myfile.bin", filemode.create,  fileaccess.write, fileshare.none);  

13 formatter.serialize(stream, obj);  

14 stream.close();  

而將物件還原到它以前的狀態也非常容易。首先,建立格式化程式和流以進行讀取,然後讓格式化程式對物件進行反序列化。

15 iformatter formatter = new binaryformatter();  

16 stream stream = new filestream(  "myfile.bin", filemode.open,   fileaccess.read, fileshare.read);  

17 myobject obj = (myobject) formatter.deserialize(fromstream);  

18 stream.close();  

19 // 下面是證明  

20 console.writeline("n1: ", obj.n1);  

21 console.writeline("n2: ", obj.n2);  

22 console.writeline("str: ", obj.str);  

JSON解析 XML解析

json解析 1大括號代表字典 2中括號 小括號 代表陣列 3冒號的左右兩邊分別為鍵和值 key value 4資料和資料之間 用逗號隔開 我們在本機上建立乙個file.xml,進行解析,並取出年齡35 json解析 本地讀取student.xm l檔案nsstring jstr nsstring ...

JSON解析 XML解析

主要是顯示地理位置和天氣以及溫度。對網路請求下來的json資料進行解析。import viewcontroller.h define kweatherurl inte ce viewcontroller property weak,nonatomic iboutlet uilabel citylab...

Xml解析 SAXParser解析

xml解析方式有兩種 xmlpullparser解析 saxparser解析,本篇介紹sax解析。sax解析方式和pull方式不同,它不是利用游標一行一行地解析,而是利用訊息處理機制,遇到什麼就處理什麼。比如當我們處理xml資料中遇到乙個開始標籤後sax會告訴你 我遇到了乙個開始標籤,這個標籤是 x...