В нашем приложении .NET мы зависим от двоичной сериализации для файлов проекта нашего приложения. Основной файл класса проекта использует следующий метод для сериализации (обратите внимание, что вся обработка исключений удалена для ясности).
public void ProjectSerialize(string filename)
{
Stream s = File.Open(filename, FileMode.Create);
BinaryFormatter b = new BinaryFormatter();
b.Serialize(s, this);
}
В классе есть много методов и свойств, которые сохраняются. Теперь все работает нормально, однако, когда мы хотим выпустить новую версию приложения с новой версией класса проекта, мы больше не совместимы с более ранними версиями. Я знаю, что это ошибка проектирования, поскольку, конечно, мне пришлось использовать свою собственную определенную сериализацию, и я не должен был зависеть от .NET для этого важного типа файлов.
Теперь мой вопрос, как я могу прочитать мои старые сериализованные файлы проекта? Есть ли какой-то формат, который я должен знать, как сериализация .NET вообще? Я просто хочу, чтобы мои клиенты были совместимы со старым форматом файлов, но я сейчас не знаю, как написать конвертер файлов для старых сохраненных файлов проекта.
Спасибо
Эрик