У меня есть класс C#, который сериализуется на диск с помощью BinaryFormatter, как в этом примере:
// 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;
}
Позже я хочу реорганизовать этот класс одним или несколькими из следующих способов
- изменить его имя
- изменить его пространство имен
- переместить в другую сборку
Насколько я могу судить, бинарный файл может быть десериализован только в том случае, если доступен класс с точно таким же именем, пространством имен и именем сборки.
Как обойти это?
Можно ли сопоставить десериализацию с другим именем класса, пространством имен и сборкой без нарушения Сериализация с поддержкой версий?