Sau khi thay đổi không gian tên của lớp tôi không còn có thể deserialize các đối tượng. Tôi đã triển khai SerializationBinder
. Ví dụ:Không thể deserialize với binaryFormatter sau khi thay đổi không gian tên của lớp
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();
Ngoại lệ tôi nhận được là:
'System.Runtime.Serialization.TypeLoadExceptionHolder' không thể được chuyển đổi sang loại 'MyNewNamespace.MyClass'
Bạn có cần phải thay đổi không gian tên trong hội đồng không? – d89761
không chắc chắn chính xác những gì bạn đang nói đến. tất cả những gì tôi làm là di chuyển lớp dataBase ra khỏi dự án của mình và vào dự án riêng của nó. theo như tôi biết điều duy nhất đã thay đổi là không gian tên. –