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;
}
}
}