物件序列化是將物件(比如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...