110,538
社区成员
发帖
与我相关
我的任务
分享
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有啥关系,不是想咋么转换就怎么转换,他们要有继承关系