que tienen datos que han sido almacenados utilizando la serialización binaria para la siguiente clase:¿Cómo deserializo datos viejos para un tipo que ha cambiado?
[Serializable]
public abstract class BaseBusinessObject
{
private NameValueCollection _fieldErrors = new NameValueCollection();
protected virtual NameValueCollection FieldErrors
{
get { return _fieldErrors; }
set { _fieldErrors = value; }
}
...
}
En algún momento, la clase fue cambiado a esto:
[Serializable]
public abstract class BaseBusinessObject
{
private Dictionary<string, string> _fieldErrors = new Dictionary<string, string>();
protected virtual Dictionary<string, string> FieldErrors
{
get { return _fieldErrors; }
set { _fieldErrors = value; }
}
...
}
Esto está causando problemas deserializar datos antiguos.
Mi primer pensamiento fue implementar ISerializable
, pero esta clase tiene numerosas propiedades, así como cientos de clases heredadas que tendrían que implementar también.
Me gustaría cambiar los datos anteriores para que coincidan con la estructura actual durante la deserialización o tener una forma limpia de actualizar los datos antiguos.
Esto proporcionó el enfoque más realista para mis necesidades, pero terminé yendo por una ruta diferente. – ramnik