Скажем, я создал класс данных некоторое время назад:
[Serializable]
public class MyData
{
public string name;
public string nickname;
public int id;
}
И я использовал BinaryFormatter для сериализации и сохранения данных пользователей в файл. По прошествии времени я решаю, что поле «псевдоним» нам больше не нужно, поэтому удаляю его:
[Serializable]
public class MyData
{
public string name;
public int id;
}
Однако теперь, когда я пытаюсь десериализовать объект, который был сериализован, когда он все еще содержал поле псевдонима, он выдает исключение:
System.Runtime.Serialization.SerializationException: поле «псевдоним» не найдено в классе MyData
Есть ли способ сообщить BinaryFormatter, что если он встретит псевдоним поля, просто проигнорирует его и десериализует остальные поля как обычно?