7
更改我的类的名称空间后,我无法再反序列化对象。我已实施SerializationBinder
。例如:更改类名称空间后,无法使用binaryFormatter反序列化
public class TypeNameConverter : SerializationBinder
{
public override Type BindToType(string assemblyName, string typeName)
{
typeName = typeName.Replace("MyOldNamespace", "MyNewNamespace");
return Type.GetType(string.Format("{0}, {1}", typeName, assemblyName));
}
}
BinaryFormatter bf = new BinaryFormatter();
bf.Binder = new TypeNameConverter();
我得到的例外是:
'System.Runtime.Serialization.TypeLoadExceptionHolder' 不能转换为类型 'MyNewNamespace.MyClass'
您是否还需要更改程序集中的命名空间? – d89761
不完全确定你在说什么。我所做的只是将我的dataBase类从我的项目中移出并放入它自己的项目中。据我所知唯一改变的是命名空间。 –