| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Проблемы с сериализацией |
| Автор: Чердак 10.4.2009, 10:07 | ||||||
Необходимо сохранить свойства объекта в xml файл. Вот класс моего объекта:
В коде сериализую:
На строке:
Выдает ошибку "Возникла ошибка при отражении типа " В чем тут дело? Не могу разобраться. |
| Автор: altarvic 10.4.2009, 10:42 |
| [XmlSerializable] сорри, попутал малость |
| Автор: Чердак 10.4.2009, 10:57 | ||
| Error 1 Не удалось найти имя типа или пространства имен 'XmlSerializable' (возможно, пропущена используемая директива или ссылка на сборку) что-то не могу найти, какой неймспайс нужен Добавлено @ 10:59 using System.Xml.Serialization; - добавил, не помогло Добавлено @ 11:07 Пишу так, ошибка:
Error 1 'VSoft.GEO.Mejevanie.AccuracyChPoint' не реализует член интерфейса 'System.Xml.Serialization.IXmlSerializable.GetSchema()' |
| Автор: Idsa 10.4.2009, 11:54 |
| altarvic, что за атрибут такой? Чердак, Xml-сериализация вообще не требует атрибута. Посмотрите, какой InnerException в первом примере. Добавлено через 2 минуты А CurDoc - переменная типа PlanData? Судя по ее имени, можно предположить, что это экземпляр типа Document. Если так, то в конструктор XmlSerializer нужно передавать typeof(Document). |
| Автор: Чердак 10.4.2009, 12:04 | ||||
Да, тип PlanData. InnerException^ {"Возникла ошибка при отражении свойства \"TableOfContents\"."} {System.Collections.ListDictionaryInternal} null Да, я не полностью класс сюда добавил, есть еще одно свойство:
|
| Автор: Idsa 10.4.2009, 12:14 |
| Чердак, сделайте тестовое приложение и прикрепите к посту. |
| Автор: Idsa 10.4.2009, 12:30 |
| Дело таки в Dictionary: http://www.google.ru/search?q=.net+serialize+dictionary&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ru:official&client=firefox-a |
| Автор: Чердак 10.4.2009, 12:32 |
| Создал |
| Автор: Чердак 10.4.2009, 13:21 |
| У меня же не класс типа Dictionary, а свойство. |
| Автор: Idsa 10.4.2009, 13:33 |
Сериализуются не классы, а их экзмепляры. У Вас свойство типа Dictionary, в котором хранится ссылка на экземпляр. |
| Автор: Чердак 10.4.2009, 14:03 |
| Погуглил... так и не понял, что делать |
| Автор: Partizan 10.4.2009, 14:22 |
| Чердак, вариантов - тьма 1. Сделать свою сериализуемую структуру данных аналогичную Dictionary 2. Юзать List<KeyValuePair<string, bool>> 3. Сделать структурку с полями типа string и bool и хранить List таких структурок Добавлено через 2 минуты и 17 секунд Чердак, 4. поюзать то, что выдаёт гугль по ссылке от Idsa 5. засериализовать бинарной сериализацией и пихнуть это текстом в xml =) |
| Автор: Чердак 10.4.2009, 14:43 | ||
Создал класс
а как его юзать хз и ошибка класса: Error 1 'VSoft.GEO.Mejevanie.DictionaryCollection<Boolean>' не реализует член интерфейса 'System.Xml.Serialization.IXmlSerializable.GetSchema()' |
| Автор: Partizan 10.4.2009, 15:23 |
| Чердак, надо слепо следовать указаниям компилятора и таки реализовать метод GetSchema =) |
| Автор: Чердак 11.4.2009, 15:15 |
| Вообще отказался от Dictionary. |