Después de cambiar el espacio de nombres de mi clase, ya no puedo deserializar los objetos. Implementé SerializationBinder
. Ejemplo:No se puede deserializar con binaryFormatter después de cambiar el espacio de nombres de la clase
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();
La excepción que recibo es:
'System.Runtime.Serialization.TypeLoadExceptionHolder' no se puede convertir al tipo '' MyNewNamespace.MyClass
¿Necesita cambiar también el espacio de nombres en el ensamblaje? – d89761
no estoy seguro de lo que estás hablando. todo lo que hice fue mover mi clase de DataBase de mi proyecto a su propio proyecto. por lo que sé, lo único que cambió fue el espacio de nombres. –