У меня есть данные, которые были сохранены с использованием двоичной сериализации для следующего класса:
[Serializable]
public abstract class BaseBusinessObject
{
private NameValueCollection _fieldErrors = new NameValueCollection();
protected virtual NameValueCollection FieldErrors
{
get { return _fieldErrors; }
set { _fieldErrors = value; }
}
...
}
В какой-то момент класс был изменен на этот:
[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; }
}
...
}
Это вызывает проблемы десериализации старых данных.
Моей первой мыслью было реализовать ISerializable
, но этот класс обладает многочисленными свойствами, а также сотнями классов наследования, для которых мне также пришлось бы реализовать это.
Я бы хотел либо изменить старые данные, чтобы они соответствовали текущей структуре во время десериализации, либо иметь чистый способ обновления старых данных.