C# 反序列化异常:找不到程序集
我从事winforms项目 我尝试反序列化一个对象:C# 反序列化异常:找不到程序集,c#,.net,deserialization,serializable,C#,.net,Deserialization,Serializable,我从事winforms项目 我尝试反序列化一个对象: private void CreateObjects() { try { using (FileStream fs = new FileStream("path to file", FileMode.Open)) sObjects = (Objects)(new BinaryForm
private void CreateObjects()
{
try
{
using (FileStream fs = new FileStream("path to file", FileMode.Open))
sObjects = (Objects)(new BinaryFormatter().Deserialize(fs));
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
但在这一行:
sObjects = (Objects)(new BinaryFormatter().Deserialize(fs));
我得到一个例外:
找不到程序集“TheNameOfClass,版本=1.0.0.0,区域性=neutral,PublicKeyToken=null”
知道是什么导致了这个异常吗?如果你的类污染了没有可序列化标记的对象,你就不能反序列化它们。您需要使用不可序列化标记来标记这些对象
如果在AssemblyInfo.cs版本中定义如下:
[assembly: AssemblyVersion("1.0.*.*")]
[assembly: AssemblyFileVersion("1.0.*.*")]
然后将其更改为:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
你有那个程序集吗?你能从这段代码中手动实例化“TheNameOfClass”吗?