Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
01.12.2017, 14:00
|
|||
---|---|---|---|
|
|||
Xml сериализация |
|||
#18+
Возникла необходимость добавить к десериализацию класса добавление 2 полей, строка и позиция для 1 типа элементов. На данный момент, я вижу только 1 путь, как это сделать: наследовать интерфейс IXmlSerializable и накидать вот такую хрень Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
но проблема в том, что если я имплиментирую этот интерфейс, то все замарочки по десериализации этого класса ложатся на меня. Так как код десериализации в xml сериализаторе генерируется runtime вызвать какой то "базовый" метод для десериализации по атрибутам нельзя, так как он хз где вообще и как его найти. А структура элемента может быть довольно большая, с иерархией и прочей фигней. Писать десериализатор\сериализатор (реализовывать методы ReadXml, WriteXml) для данного класса мне совсем не улыбается. Возникает вопрос, как сделать это красиво, без боли и крови. Смысл простой, если класс наследует интерфейс IFoo, то десериализатор должен инициировать поля этого интерфейса с строкой и положением в строке. Может у кого есть, нормальные, здоровые решения. Гемороя добавляет еще и то, что классы модели генерируются из XSD файла и код может быть в любой момент перегенерирован. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.12.2017, 19:13
|
|||
---|---|---|---|
|
|||
Xml сериализация |
|||
#18+
Не проще ли после сериализации пройтись по DOM-дереву, и расставить атрибуты? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.12.2017, 21:07
|
|||
---|---|---|---|
|
|||
Xml сериализация |
|||
#18+
Сон Веры ПавловныНе проще ли после сериализации пройтись по DOM-дереву, и расставить атрибуты?тоже думал об этом варианте, но он не кажется мне "изящным" :) но видимо единственный верный в данной ситуации, жаль, что не предусмотрели это, хотя технически это не составляет большого труда. было бы на много круче, если бы можно было управлять генерацией кода ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=20&tablet=1&tid=1399585]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 336ms |
total: | 470ms |
0 / 0 |