using System.IO; using System.Runtime.Serialization.Formatters.Binary; namespace NetWorkHelper { /// /// 负责将对象序列化成byte[]数组 /// public class SerHelper { /// /// 将实体序列化成byte[]数组 /// /// /// public static byte[] Serialize(object obj) { // 1.0 实例化流的序列化帮助类 BinaryFormatter bf = new BinaryFormatter(); //2.0 定义内存流,用来接收通过bf的Serialize()方法将obj对象序列化成byte[]字节数组 byte[] res; using (MemoryStream ms = new MemoryStream()) { bf.Serialize(ms, obj); res = ms.ToArray(); } return res; } /// /// 根据byte[]字节数组反序列化成 对象实体 /// /// /// public static T Deserialize(byte[] buffer) { // 1.0 实例化流的序列化帮助类 BinaryFormatter bf = new BinaryFormatter(); T obj; using (MemoryStream ms = new MemoryStream(buffer)) { obj = (T)bf.Deserialize(ms); } //bf.Deserialize( return obj; } /// /// 根据byte[]字节数组反序列化成 对象实体 /// /// /// /// public static object Deserialize(byte[] datas, int index) { BinaryFormatter bf = new BinaryFormatter(); MemoryStream stream = new MemoryStream(datas, index, datas.Length - index); object obj = bf.Deserialize(stream); stream.Dispose(); return obj; } } }