BinaryFormatter устарел, что делать?

Начиная с .NET 5 BinaryFormatter объявлен устаревшим из-за небезопасности.

Рекомендуемый путь - переключение на protobuf, вот здесь есть обсуждение.

Что непонятно: как переписать сериализацию и десериализацию так, чтобы была совместимость со старыми файлами, созданными с помощью BinaryFormatter?


Ответы (1 шт):

Автор решения: demonplus

Ответ по итогу обсуждения в комментариях:

  1. Лучше отказаться от BinaryFormatter и перейти на другой метод сериализации и десериализации, более новый/безопасный.

  2. При переходе на новый формат совместимости со старыми данными не будет.

  3. Если все же нужно сохранить BinaryFormatter (и данные никуда не передаются/какой-то внутренний формат, т.е. особых требований по безопасности нет), то в файл проекта нужно включить:

<EnableUnsafeBinaryFormatterSerialization>true</EnableUnsafeBinaryFormatterSerialization>
→ Ссылка