powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Xml сериализация
3 сообщений из 3, страница 1 из 1
Xml сериализация
    #39562551
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возникла необходимость добавить к десериализацию класса добавление 2 полей, строка и позиция для 1 типа элементов.
На данный момент, я вижу только 1 путь, как это сделать:
наследовать интерфейс IXmlSerializable и накидать вот такую хрень
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
        private void GetCurrentPosition(XmlReader reader, out int lineNumber, out int linePosition)
        {
            if (reader is IXmlLineInfo)
            {
                IXmlLineInfo lineInfo = (IXmlLineInfo)reader;
                lineNumber = lineInfo.LineNumber;
                linePosition = lineInfo.LinePosition;
            }
            else
                lineNumber = linePosition = -1;
        }

        public void ReadXml(XmlReader reader)
        {
            GetCurrentPosition(reader, out int lineNumber, out int linePosition);
        }



но проблема в том, что если я имплиментирую этот интерфейс, то все замарочки по десериализации этого класса ложатся на меня.
Так как код десериализации в xml сериализаторе генерируется runtime вызвать какой то "базовый" метод для десериализации по атрибутам нельзя, так как он хз где вообще и как его найти. А структура элемента может быть довольно большая, с иерархией и прочей фигней.
Писать десериализатор\сериализатор (реализовывать методы ReadXml, WriteXml) для данного класса мне совсем не улыбается.

Возникает вопрос, как сделать это красиво, без боли и крови.

Смысл простой, если класс наследует интерфейс IFoo, то десериализатор должен инициировать поля этого интерфейса с строкой и положением в строке.

Может у кого есть, нормальные, здоровые решения.

Гемороя добавляет еще и то, что классы модели генерируются из XSD файла и код может быть в любой момент перегенерирован.
...
Рейтинг: 0 / 0
Xml сериализация
    #39562820
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не проще ли после сериализации пройтись по DOM-дереву, и расставить атрибуты?
...
Рейтинг: 0 / 0
Xml сериализация
    #39562850
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныНе проще ли после сериализации пройтись по DOM-дереву, и расставить атрибуты?тоже думал об этом варианте, но он не кажется мне "изящным" :) но видимо единственный верный в данной ситуации, жаль, что не предусмотрели это, хотя технически это не составляет большого труда. было бы на много круче, если бы можно было управлять генерацией кода
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Xml сериализация
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]