Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Про сериализацию ... / 5 сообщений из 5, страница 1 из 1
26.01.2005, 20:11
    #32885755
CSD
CSD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про сериализацию ...
Заранее благодарен ...

Вопрос состоит в следующим:
1) в программе есть класс данных, в котором можно добавить новые значения и изменить старые;
2) эти данные нужно сохранить как параметры следующего запуска программы.

Используя бинарную сериализацию, эти данные сохраняются в файл. При запуске программы, данные десериализируются в вышеупомянутый класс.

Проблема состоит в том, что при изменении структуры класса данных (даже только при добавлении новых параметров), данные не десериализируются из старой структуры, сохраненной в файле. То есть, если сделал новый exe-модуль и запустил его, то все настройки пропали ...

Как тут быть?
...
Рейтинг: 0 / 0
27.01.2005, 00:11
    #32885900
Bigheadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про сериализацию ...
Реализовать сериализацию вручную. Т.е. реализовать интерфейс ISerializable. Кроме того придется подменять в методе GetObjectData имя сборки, т.к. по умолчанию подставляется FullName сборки. А в нем указана версия сборки. Т.о. если вы смените версию сборки, то при десериализация вы получите исключение.

При ручной (де)сериализации вы можете реализовать обработку любых возможных ошибок.
...
Рейтинг: 0 / 0
27.01.2005, 11:59
    #32886633
fixit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про сериализацию ...
CSDЗаранее благодарен ...

Вопрос состоит в следующим:
1) в программе есть класс данных, в котором можно добавить новые значения и изменить старые;
2) эти данные нужно сохранить как параметры следующего запуска программы.

Используя бинарную сериализацию, эти данные сохраняются в файл. При запуске программы, данные десериализируются в вышеупомянутый класс.

Проблема состоит в том, что при изменении структуры класса данных (даже только при добавлении новых параметров), данные не десериализируются из старой структуры, сохраненной в файле. То есть, если сделал новый exe-модуль и запустил его, то все настройки пропали ...

Как тут быть?

посмотри XmlSerializer, может подойдет в твоем случае...
...
Рейтинг: 0 / 0
27.01.2005, 15:22
    #32887338
CSD
CSD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про сериализацию ...
fixit

посмотри XmlSerializer, может подойдет в твоем случае...

Подходит, только для скалярных велечин, т.е. когда массивы, хэштэблы и т.д. дает ошибку (цитирую):

An unhandled exception of type 'System.InvalidOperationException' occurred in system.xml.dll

Additional information: There was an error reflecting type 'Test.qqq'.

где qqq - public class, в котором присутствуют массивы, хэштэблы и т.д., а они нужны ...

Что тогда?
...
Рейтинг: 0 / 0
27.01.2005, 22:10
    #32888158
Про сериализацию ...
А на этот случай, кажись, даже в родном MSDN полно примеров.
Немножко дописать придётся, но вполне реально.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Про сериализацию ... / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]