Tengo una clase C# que se serializa en disco por los BinaryFormatter, como este ejemplo:Cómo refactorizar una clase que se serializa en .NET?
// Version 3.0
[Serializable]
public class Person
{
public string FullName;
[OptionalField(VersionAdded=2)]
public string NickName;
[OptionalField(VersionAdded=2)]
public DateTime BirthDate;
[OptionalField(VersionAdded=3)]
public int Weight;
}
Más tarde, quiero refactorizar esta clase por uno o más de los siguientes
- Cambie su nombre
- Cambie su espacio de nombres
- Mover a otra asamblea
Por lo que yo puedo decir, el archivo binario sólo puede ser serializado-dE, siempre una clase con el mismo nombre, espacio de nombres y montaje nombre exacto está disponible.
¿Cómo puedo solucionar esto?
¿Es posible asignar la deserialización a un nombre de clase, espacio de nombres y ensamblaje diferente sin romper Version Tolerant Serialization?
¿Quiere decir que Person debería implementar ISerializable y GetObjectData()? ¿Cómo sabrá el deserializador que se debe usar esta clase de Persona exacta, cuando tiene un nombre, un espacio de nombres y/o un ensamblaje diferente? ¿De alguna manera puedo decirle al deserializador qué clase usar? – angularsen