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類從我的項目中移出並放入它自己的項目中。據我所知唯一改變的是命名空間。 –