**
C# 序列化与反序列化
定义:将对象转换成字节流并存储,在需要时将数据转为对象。
实现步骤:
1、将数据类贴上可系列化标签,让其可被序列化。
2、定义二进制序列化的字节流,通过字节流将数据序列化。
3、以序列化数据类型接受反序列化的数据。
具体实现如下
//自定义序列化数据类,将该类标记为可序列化
[Serializable]
public class Data {
public string Name { get; private set; }
public int Id { get; private set; }
public Data(string name,int id) {
Name = name;
Id = id;
}
}
public static void main() {
List<Data> list = new List<Data>();
list.Add(new Data("第一个类",10001));
list.Add(new Data("第二个类",10002));
list.Add(new Data("第三个类",10003));
//二进制序列化类
BinaryFormatter binaryFormatter = new BinaryFormatter();
//序列化实例数据,将数据持久化
using (FileStream fileStream = new FileStream("ser.dat", FileMode.OpenOrCreate,FileAccess.Write)) {
//通过字节流将数据序列化
binaryFormatter.Serialize(fileStream, list);
}
//反序列化
using (FileStream fileStream = new FileStream("ser.dat", FileMode.Open, FileAccess.Read))
{
if (fileStream.Length > 0) {
//将数据反序列化,序列时是什么类型就要用什么类型接受数据
List<Data> des_data = binaryFormatter.Deserialize(fileStream) as List<Data>;
if (des_data != null && des_data.Count > 0) {
foreach(Data data in des_data) {
Debug.LogError("ID" + data.Id + "NAME" + data.Name);
}
}
}
}
}
打印如下
**