序列化和反序列化

2022-02-21 12:23:06 字數 900 閱讀 6112

一、概述

何為序列化和反序列化?

我們再傳遞資料的和儲存資料時,我們可以用乙個變數記錄,但是如果是乙個物件改怎麼辦呢,這是就得用序列化和反序列化。

在計算機中,資料的存放都是二進位制。我們傳遞資料也是傳遞二進位制,根據這個不變性,我們把需要傳遞的變數序列化成乙個二進位制的資料儲存並傳遞,再通過反序列化,就能夠得到原來的物件。

下面是乙個實現序列化和反序列化的例子,我們通過特殊屬性定義了乙個  [serializable]class myobject,在myobject中又有乙個  [noserializable]的變數age

通過變數傳遞後,我們發現,age的值是預設值0,而不是23.

這說明,只有實現了序列化的變數/值,才能被傳遞,其他的不能。

class program

/// /// 序列化程式

///

///

///

static byte seriliaze(myobject obj)

}/// /// 序列化程式

///

///

///

static myobject deseriliaze(byte bytearray)}}

/// /// 乙個用來測試序列化的類

///

[serializable]

class myobject

public override string tostring()

;age is ",name,age);

}}

二、詳細

實現序列化的方法有哪些呢?

在.net中是先序列化的方法有:binaryformatter,soapformatter,xmlserilizer

這裡講的比較清楚,大家可以參考

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

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

序列化和反序列化

先定義乙個類 serializable xmlroot shintech public class person set public string name set public person this 0,string.empty public person int m age,string m...

序列化和反序列化

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