class Program
{
static void Main(string[] args)
{
Class1 c1 = new Class1();
c1.str1 = "100";
byte[] b1 = ObjectToBytes(c1);
Class2 c2 = (Class2)BytesToObject(b1);//这里转换为什么不行啊?
Object obj = BytesToObject(b1);
obj.GetType();
Console.WriteLine( obj.GetType());
Console.ReadKey();
} /// <summary>
/// 序列化
/// </summary>
/// <param name="p_Object"></param>
/// <returns></returns>
public static byte[] ObjectToBytes(object p_Object)
{
BinaryFormatter _Formatter = new BinaryFormatter();
MemoryStream _Memory = new MemoryStream();
try
{
_Formatter.Serialize(_Memory, p_Object);
}
catch (Exception ex)
{
}
return _Memory.GetBuffer();
} /// <summary>
/// 反序列化
/// </summary>
/// <param name="p_ObjectBytes"></param>
/// <returns></returns>
public static object BytesToObject(byte[] p_ObjectBytes)
{
BinaryFormatter _Formatter = new BinaryFormatter();
MemoryStream _MemStr = new MemoryStream(p_ObjectBytes);
try
{
return _Formatter.Deserialize(_MemStr);
}
catch (Exception ex)
{
return null;
}
}
}类class1,class2都是只有一个字符串类型的属性。
注释处报:不能从class1转换成class2序列化对象转换
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货