|
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, 14:00 |
|
Xml сериализация
|
|||
---|---|---|---|
#18+
Не проще ли после сериализации пройтись по DOM-дереву, и расставить атрибуты? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 19:13 |
|
Xml сериализация
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныНе проще ли после сериализации пройтись по DOM-дереву, и расставить атрибуты?тоже думал об этом варианте, но он не кажется мне "изящным" :) но видимо единственный верный в данной ситуации, жаль, что не предусмотрели это, хотя технически это не составляет большого труда. было бы на много круче, если бы можно было управлять генерацией кода ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 21:07 |
|
|
start [/forum/topic.php?fid=20&fpage=36&tid=1399585]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
2ms |
others: | 10ms |
total: | 125ms |
0 / 0 |