none
二进制反序列化的问题? RRS feed

  • 问题

  • 在应用.
    一.A程序员二进制序列化一个类,保存文件为XX.bin
    二.复制XX.bin文件给B程序员.
    三.B程序员反序列化这个XX.bin文件.供B调用,怎么做?
    注意帮我写段如何调用反序列化后的调用类代码吧!!

    反序列化后,是一个类,如何用这个类呀/?
    如:
    public static object fnDeSerializFromFile(string v_path)
            {
                try
                {
                    using (FileStream __fs = System.IO.File.OpenRead(v_path))
                    {

                        byte[] byts = new byte[__fs.Length];
                        __fs.Read(byts, 0, (int)__fs.Length);
                        BinaryFormatter __bf = new BinaryFormatter();
                        object result = __bf.Deserialize(__fs);
                        __fs.Close();
                        return result;
                    }
                }
                catch (Exception ex)
                {
                    My.Msg.ExceptionInfo.ShowExceptionError("fnDeSerializ", ex);
                    return null;
                }

            }//从文件转换为对象

    如何引用这个对象的成员函数或变量呢??

    注意:这个文件是别人序列化后给我的,代码并不在我的项目中.所以我知这个类名,可是按这个类名转化要报错的.!!!!!
    如,我知这个类别是B
    B ct=fnDeSerializFromFile("xx.bin");//是不行 的,

    2009年10月8日 7:35

答案

  • 你好!
         其他开发人员应该提供给你包括这个类型的定义的dll,让你引用的!
    周雪峰
    2009年10月9日 5:02
    版主
  • 序列化的仅仅是类的数据(属性字段)  以及类的声明(名称版本)  并不包括类的逻辑

    你必须引用相应的dll 才可以建立相应的容器来实例化这个类


    恭喜自己5星用户达成
    • 已标记为答案 zjh111 2009年10月9日 7:36
    2009年10月9日 5:59
    版主

全部回复