C 學習之序列化

2021-06-17 15:42:41 字數 1914 閱讀 4094

物件序列化是將物件(比如person物件)轉換為二進位制資料(位元組流)反序列化

示例1:序列化

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.io;

using system.runtime.serialization.formatters.binary;//需要引用的命名空間

namespace _05物件序列化

//3.只序列化字段資訊,方法不被序列化

//反序列化步驟:1.建立二進位制序列化器(格式化器):binaryformatter bf = new binaryformatter();

//2.建立檔案流: using (filestream fs=new filestream("", filemode.create))

////序列化注意問題:

//1.要被序列化的物件的型別必須標記為可序列化為[sreializable]

//2.父類也要標記

//3.類中字段或屬性的型別也必須為可序列化的

static void main(string args)

console.writeline("ok");

console.readkey(); }}

//person型別要想被序列化,

//1.必須person型別本身是可序列化的(即person型別標記為可序列化)

//2.類中所有的字段屬性的型別也必須標記為可序列化的

//3.當前型別的所有父類也必須標記為可序列化的

[serializable]

public class person : shenwu

set}

private int _age;

public int age

set}

private string _email;

public string email

set}

private car _mycar;

public car mycar

set }}

[serializable]

public class shenwu//person繼承該類,所以也需要進行可序列化標記[serializable]

}[serializable]

public class car//car作為person中的屬性字段,也需要進行可序列化標記[serializable]

private string _brand;

public string brand

set}

}}

示例2:反序列化

說明:非網路流中需要新增序列化集引用,在本例中即新增「05物件序列化」

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.runtime.serialization.formatters.binary;

using system.io;

using _05物件序列化;

namespace _06反序列化

,age:,car:", per.name, per.age, per.mycar.brand);

}console.writeline("ok");

console.readkey();}}

}

C 序列化 反序列化

序列化又稱序列化,是.net執行時環境用來支援使用者定義型別的流化的機制。其目的是以某種儲存形成使自定義物件持久化,或者將這種物件從乙個地方傳輸到另乙個地方。net框架提供了兩種序列化的方式 1 是使用binaryformatter進行序列化 2 使用soapformatter進行序列化 3 使用x...

Java學習之序列化

我們都站在巨人的肩膀上 1.序列化 2.反序列化 3.序列化特點 4.物件序列化 5.使用場景 6.為什麼要使用serialversionuid 7.serialversionuid一種就是1l,一種是生成乙個很大的數,這兩種有什麼區別呢?就手工遞增版本號。1 2 3 是根據類的結構產生的hash值...

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

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