我的反序列函数总是跑出异常,我接收了一个byte[],反序列化时说找不到程序集“xxx.exe version:1.0.0”什么的
public static object BytesToObject(byte[] p_ObjectBytes)
        {
            BinaryFormatter _Formatter = new BinaryFormatter();
            MemoryStream _MemStr = new MemoryStream(p_ObjectBytes);
            _MemStr.Position = 0;
            try
            {
                return _Formatter.Deserialize(_MemStr);
            }
            catch(Exception e)
            {
                Console.WriteLine(e.Message);
                return null;
            }
        }

解决方案 »

  1.   

    是否缺少引用
    还有p_ObjectBytes数据获取是否存在问题
      

  2.   

    因为楼主没有为该项目添加引用。为程序集添加引用,和用using引入命名空间是完全不同的概念
      

  3.   

    数据应该存在,我把它tostring打出来些内容,引用时缺少什么呢,应该加什么引用呢?
      

  4.   

    在解决方案资源管理器窗口,引用-添加引用-在。net下选择"system.RunTime.Serialization.Formatters.Soap”
      

  5.   

     你有没有在MemoryStream 这个类里加上[Serializable]
    例如:[Serializable]               ----------------指示一个类可以序列化,无法继承此类
        class MemoryStream            ----------------你创建的那个MemoryStream类
        {
            public string stuName;
            public int stuAge;
        }另外还要有using System.Runtime.Serialization.Formatters.Binary;这句引用
      

  6.   

    = =! MemoryStream是序列化反序列化所要使用的内存流吧
      

  7.   

    哦,问题解决了开始,要新建个Class Library,然后分别加载到两个PRJ中,然后再引入命名空间就O了,
    一周没看了,今天再看就搞懂了,呵呵