我想序列化一个自定义类的对象,而不是在某些事情(例如解决方案重建)之后,我应该反序列化给定的对象。 问题是重建后如果我尝试反序列化则抛出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上。
当我尝试转换反序列化结果时抛出异常。