![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
dAlex |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 3.8.2006 Где: Санкт-Петербург Репутация: нет Всего: 2 |
Необходимо сделать сохранение коллекции моих классов и одного дабла в файл и загрузку оттуда (в дальнейшем, и какие-то настройки хранить, отдельно). Можно, конечно, просто тупо каждый раз все записывать и целиком считывать, но, наверное, может это сделать поудобнее, как? В mfc можно было делать просто Serialize, и все записывалось в принципе почти само. Наверняка тут есть что-то подобное?
--------------------
eof() |
|||
|
||||
Rogik |
|
|||
![]() Veni vidi vici Профиль Группа: Участник Сообщений: 37 Регистрация: 25.10.2008 Где: Красноярск Репутация: нет Всего: 1 |
Может это поможет
|
|||
|
||||
dAlex |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 3.8.2006 Где: Санкт-Петербург Репутация: нет Всего: 2 |
Rogik, немного не то, там все-таки С++
--------------------
eof() |
|||
|
||||
sq1ony |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 17.12.2010 Репутация: нет Всего: нет |
||||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
а стандартный XmlSerializer что не работает уже?
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
dAlex |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 3.8.2006 Где: Санкт-Петербург Репутация: нет Всего: 2 |
jonie, а у меня коллекция нестандартного типа. Или справится и с таким? Или надо что-то перегрузить?
--------------------
eof() |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
dAlex, главное чтобы эти нестандартные типы были сериализующимися (пометить их ктрибутом Seializable надо как минимум)...
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
dAlex |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 3.8.2006 Где: Санкт-Петербург Репутация: нет Всего: 2 |
так, начинаю все-таки разбираться с этим =)
как это выглядит, более подробно: есть у меня класс окна, экземпляр которого создается по кнопке. В этом классе есть несколько коллекций и просто переменных. Соответственно, сам этот класс сериализовать не надо (ведь при десериализации создается новый экземпляр класса на основе данных из файла?), а его членов. С коллекциями вроде все ясно - у них внутри надо пометить сериализуемые элементы. А что делать с классом? Тоже просто пометить элементы, и тогда при десериализации они просто будут проинициализированы заново? --------------------
eof() |
|||
|
||||
-Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 17 Всего: 59 |
Если я все правильно понял, то речь идет об этом:
-------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
dAlex |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 3.8.2006 Где: Санкт-Петербург Репутация: нет Всего: 2 |
-Mikle-, а в MyCustomData не нужно еще помечать отдельно сериализуемые поля? или оно само?
![]() и правда, что нужно в каждом сериализуемом классе делать пустой конструктор? и если мы делаем сериализацию прямо внутри MyCustomData, можно использовать this? Это сообщение отредактировал(а) dAlex - 27.4.2011, 11:00 --------------------
eof() |
|||
|
||||
-Mikle- |
|
||||||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 17 Всего: 59 |
А ты просто попробуй, по ходу ответишь на вопрос.
Дефолтный конструктор должен присутствовать, так как при десериализации создается сначала экземпляр класса, а потом происходит его заполнение.
При сохранении (сериализации), нет никаких причин сомневаться в этом. При загрузке (десериазизации) думаю очевидно, что мы не можем написать this = (MyCustomData)serializer.Deserialize(stream) ![]() -------------------- Если тебе плюют в спину, значит ты впереди... |
||||||
|
|||||||
dAlex |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 3.8.2006 Где: Санкт-Петербург Репутация: нет Всего: 2 |
-Mikle-, спасибо, буду пробовать =)
то есть что-то типа такого?
--------------------
eof() |
||||
|
|||||
-Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 17 Всего: 59 |
Я не понял типа какого такого...
Имел ввиду типа такого (если по примеру выше):
-------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
dAlex |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 3.8.2006 Где: Санкт-Петербург Репутация: нет Всего: 2 |
а, ясно =) я думала, типа такого MSDN
--------------------
eof() |
|||
|
||||
dAlex |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 3.8.2006 Где: Санкт-Петербург Репутация: нет Всего: 2 |
Попробовала просто создать сериалайзер, вываливается вот такое:
441 строчка это как раз
Это сообщение отредактировал(а) dAlex - 3.5.2011, 11:07 --------------------
eof() |
||||
|
|||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |