物件序列化和反序列化

2021-05-12 09:50:26 字數 720 閱讀 1932

物件序列化有很多方式,在這裡我只講用xml序列化,我們從開始序列化講起,首先,你要在需要被序列化的類前面寫上[serializable],表示該類的例項可以被序列化,其次在要執行序列化的**去中寫入using system.xml.serialization;(xml序列化必須的)using system.io;(檔案流的操作)

下面具體講序列化和反序列化的**實現:

實現之前,我這裡先定義乙個簡單的people類

下面是序列化和反序列化的具體**:

單擊兩個button分別執行,其中private void button1_click_1(object sender, eventargs e)執行序列化,private void button2_click(object sender, eventargs e)執行反序列化。

但是我在具體操作該**時發現了問題,就是當我序列化乙個物件是,其物件的whf屬性應該是whf,但是在具體的xml檔案裡卻找不到whf的值,當你在people類中修改whf屬性值時,其反序列化的結果是物件的whf屬性立即改變了,然後仔細一想,原來在物件反序列化時,是先建立乙個物件,然後從xml檔案裡找其公共屬性欄位的值,而那些沒有記錄在檔案裡的是靠例項化物件時的返回值的,比如我在一開始whf屬性裡是get,這樣序列化後,在xml檔案裡是找不到whf屬性的,當反序列化物件時,如果先在people類中修改whf屬性,比如whf屬性改為get,反序列化後,物件的whf屬性就改為matt了,不知這樣說大家能理解不,呵呵。

物件序列化和反序列化

c 提供三種序列化的方法,與此有關的三個類分別是 binaryserialize soapserialize xmlserialize 以二進位制的序列化和反序列化為例,先建立乙個實體類product。1 serializable 2public class product316 17public ...

物件序列化 反序列化

必須新增引用 using system.io using system.runtime.serialization using system.runtime.serialization.formatters.binary 方法 region 物件序列化 物件序列化 任意物件 字串 public st...

物件 序列化 反序列化

public class eventmessage 資訊提示類 型別1 操作日誌2 安全日誌 標題 內容 icon型別 url 執行script指令碼字串 需加 public static void messagebox int m type,string m title,string m body...