Какой рейтинг вас больше интересует?
|
Главная / Каталог блогов / Cтраница блогера Хабрахабр: Коллективные / Блоги / Захабренные / Запись в блоге
.NET / [Из песочницы] C# и нечувствительная сериализация2011-07-25 22:03:10 (читать в оригинале)Очень часто при работе над каким-либо проектом (как учебным, так и коммерческим) я сталкиваюсь с необходимостью сохранения каких-либо сложных данных на диск и чтения их оттуда. Казалось бы — сделай свой формат, хоть текстовый, хоть бинарный, опиши методы чтения/записи и пользуйся, ни о чем не думая. Однако со временем возникают две проблемы. Первая связана с увеличением количества данных: если файл хранит в себе несколько десятков, а то и сотен совершенно различных значений, то поддерживать методы для сохранения и загрузки становится тяжеловато и хочется некой автоматизации. Вторая проблема несколько сложнее. Представим себе, что со временем нам начинает требоваться запихивать в наш файл все больше и больше данных (конечно, при хорошем проектировании подобные вещи не должны возникать, но где вы видели хорошее проектирование в учебных проектах? да и в коммерческих такое сплошь и рядом). При этом продукт уже используется и уже сохранено достаточное количество файлов, не содержащих эти данные, но которые надо уметь загружать и использовать. Понятно, что описывать каждый формат вручную и пытаться распознать, какую же версию файла нам подсовывают — не выход. В этой статье я хочу рассказать о том, как сделать свой формат данных, нечувствительный к изменению и работающий с любой из своих предыдущих версий. Сразу хочу предупредить, что для самой процедуры чтения/записи файла я буду использовать бинарную сериализацию. Кое-что из того, что будет сказано в дальнейшем, применимо и к XML-сериализации, но в своей текущей работе мы с коллегами используем именно бинарную (из-за меньшего объема получающихся файлов и большей скорости работы системы в целом). Неудивительно, что вышеописанная проблема имеет не одно решение. Я расскажу о двух вариантах, каждый из которых имеет свои особенности. Читать дальше →
|
Категория «Истории»
Взлеты Топ 5
Падения Топ 5
Популярные за сутки
|
Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.
взяты из открытых общедоступных источников и являются собственностью их авторов.