C#篇-unity和序列化和反序列
简介
所谓序列化就是将对象转换为字节流,反序列化则是字节流转换回对象
C#完成序列化和反序列化
序列化
Serialize方法会利用反射机制查看对象类型含有的字段,因为之后要对这些字段序列化,同时还有分辨对象是否已被序列化(一个对象只能序列化一次,否则会死循环)。
/// <summary>
/// 序列化
/// </summary>
/// <param name="instance"></param>
/// <returns></returns>
public static MemoryStream InstanceDataToMemory(object instance)
{
//创建一个流来容纳序列化的对象
MemoryStream memoryStream = new MemoryStream();
//创建一个序列化格式化器来执行序列化
//BinaryFormatter只是C#所提供的格式化器中的一个
BinaryFormatter binaryFormatter = new BinaryFormatter();
//序列化对象并传入流中
binaryFormatter.Serialize(memoryStream, instance);
return memoryStream;
}
反序列化
/// <summary>
/// 反序列化
/// </summary>
/// <param name="stream"></param>
/// <returns></returns>
public static object MemoyInstanceData(Stream stream)
{
BinaryFormatter binaryFormatter = new BinaryFormatter();
return binaryFormatter.Deserialize(stream);
}
序列化存储为二进制文件
public