通过不同版本

时间:2016-01-20 08:31:50

标签: c# asp.net serialization casting deserialization

我想序列化一个自定义类的对象,而不是在某些事情(例如解决方案重建)之后,我应该反序列化给定的对象。 问题是重建后如果我尝试反序列化则抛出InvalidCastException ...

我认为是因为重建后序列化对象“属于”不同的程序集,这是问题吗?我该如何解决?

这是完整的例外

  

[A] UserWeb无法转换为[B] UserWeb。 A型起源于   'App_Code.1us8pwe3,Version = 0.0.0.0,Culture = neutral,   位于上下文'Default'的PublicKeyToken = null'   'C:\ Users \ David \ AppData \ Local \ Temp \ Temporary ASP.NET   文件\ VS \ 7b743d5e \ 8394e6b3 \ App_Code.1us8pwe3.dll”。 B型起源   来自'App_Code.nzoq2xtn,Version = 0.0.0.0,Culture = neutral,   位于上下文'Default'的PublicKeyToken = null'   'C:\ Users \ David \ AppData \ Local \ Temp \ Temporary ASP.NET   文件\ VS \ 7b743d5e \ 8394e6b3 \ App_Code.nzoq2xtn.dll”。

Theese是我的序列化/反序列化函数

    public static string Serialize(object obj)
    {
        BinaryFormatter bformatter = new BinaryFormatter();
        MemoryStream stream = new MemoryStream();

        bformatter.Serialize(stream, obj);

        stream.Position = 0;
        StreamReader reader = new StreamReader(stream);
        string text = reader.ReadToEnd();

        return text;
    }

    public static object Deserialize(string xml)
    {
        BinaryFormatter bformatter = new BinaryFormatter();

        byte[] byteArray = Encoding.ASCII.GetBytes(xml);
        MemoryStream stream = new MemoryStream(byteArray);
        object obj = bformatter.Deserialize(stream);
        stream.Close();

        return obj;
    }

序列化对象存储在DB上。

当我尝试转换反序列化结果时抛出异常。

0 个答案:

没有答案