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序列化对象转换

解决方案 »

  1.   

    class1和class2有啥关系,不是想咋么转换就怎么转换,他们要有继承关系
      

  2.   

    版主大神,那我要从远程java端接收一个对象,本地怎么反序列化获取其属性值呢
      

  3.   

    那序列化、反序列化是什么意思啊?我能接收一个java端实例么
      

  4.   

     +1 建议贴出class1和class2的代码 或者至少说清楚class1和class2的关系
      

  5.   

    可以参考一下这里http://developer.51cto.com/art/200908/146598.htm
      

  6.   

    两个类没有关系,就是单独的两个类,里面都只有一个string属性。我就是想测试一下怎么接收远程发来的实例对象。
      

  7.   

    想测试一下怎么接收远程发来的实例对象。 远程发送来的一般是xml 或者是json串,你应该把这些东西反序列化话为对象。而你上面的操作,单独的两个不相关的类相互转化报错是正常的。看看我给你的资料吧
      

  8.   

    .NET要接收Java的对象,除非是用Json或XML序列化的,否则不可能反序列化成功。而你居然用BinaryFormatter,找死!
      

  9.   

    可以是byte[],但是两边需要统一的序列化规则。