class Program
{
static void Main(string[] args)
{
A a = new A() { AppId = "4", haor = "浩然" };
var bytes=a.ObjectToBytes(a);
var classA = a.BytesToObject(bytes);
Console.ReadKey();
}
[Serializable()]
public abstract class PacketBase
{
public string AppId { get; set; }
public string Token { get; set; }
public string DeviceId { get; set; }
}
[Serializable()]
public class A:PacketBase
{
public string haor { get; set; }
/// <summary>
/// 将一个object对象序列化,返回一个byte[]
/// </summary>
/// <param name="obj">能序列化的对象</param>
/// <returns></returns>
public byte[] ObjectToBytes(object obj)
{
using (MemoryStream ms = new MemoryStream())
{
IFormatter formatter = new BinaryFormatter(); formatter.Serialize(ms, obj); return ms.GetBuffer();
}
}
/// <summary>
/// 将一个序列化后的byte[]数组还原
/// </summary>
/// <param name="Bytes"></param>
/// <returns></returns>
public object BytesToObject(byte[] Bytes)
{
using (MemoryStream ms = new MemoryStream(Bytes))
{
IFormatter formatter = new BinaryFormatter(); return formatter.Deserialize(ms);
}
}
}
}