Xml сериализация Hashtable
А можно воспользоваться сериализацией в soap.
Костя, не делай так, как сказал Колян.
Чушь, какие у тебя ключи?
У меня ключей нет
XmlSerializer не умеет сериализовывать Hashtable, и в частности IDictionary - о чем и сообщает.
ps
Соответственно надо или писать свою сериализацию Hashtable (например, через вспомогательный массив либо посмотреть в инете.
Че-то я забыл уже, как сказал Колян. И говорил ли он мне вообще что-то на эту тему...
Пользваться я им хотел для загрузки настроек программы из файла.
Минусов куча:
1. Сериализует/десериализует только публичные поля и свойства.
2. Для internal классов тоже не подходит.
3. (самое отстойное, наверное) Не обрабатывает readonly поля. Вроде че-то можно там с ISerializable намутить, конструктор специальный забабахать, но у меня не заработало все равно.
4. Добавляет в заголовок длииинное описание namespace-ов так, что потом файл конфигурации читать противно.
5. Сосет в отношении Hashtable. Это тоже никуда не годится. Особенно если учесть, что в MSDN написано, что отчасти это из-за того, что на реализацию не хватило времени. Суки ленивые!
6. Задалбывает помечать поля, которые я хочу сделать атрибутами. А атрибутами я хочу сделать все, что не имеет вложенных элементов (строки, int, double...)
Теперь я загружаю объекты путем передачи в конструктор параметра XmlElement и вполне этим доволен.
Все могу контролировать.
Кода мало.
Все подряд public-ами делать не надо.
Благодать!
Кажется, я понимаю, о чем ты...
Значит, в предыдущем посте я накосячил.
Ну и ладно!
Оставить комментарий
aleks058
Возникла следующая задача:необходимо сериализовать Hashtable в Xml.
Hashtable реализует интерфейс ISerializable, но при этом XmlSerializer отказывается ее сериализовать. Написано, что это из-за того, что Hashtable реализует ко всему прочему еще и IDictionary.
Я абсолютно не понимаю, в чем заключается проблема для XmlSerializer, но она явно есть
Что можно сделать?