|
Class from XML
|
|||
---|---|---|---|
#18+
Подскажите как можна создать класс динамически из Xml, с полями и т. д., то есть что бы с ним можна было работать как с обычным обьектом. У меня приходит много файлов разных форматов и я не хочу каждый раз когда появится новый тип файла писать еще один класс для его обработки, и вот подумал может можна создать список xml шаблонов классов и написать форму для их редактирования, а потом динамически из них строить классы. На форуме StackOverFlow нашел код Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Но вот как работать с полями класса "T"? Если есть другие примеры буду ооочень благодарен за помощь. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2014, 10:10 |
|
Class from XML
|
|||
---|---|---|---|
#18+
VIT2708Но вот как работать с полями класса "T"? 1. приведение типа 2. рефлексия "каждый раз когда появится новый тип файла писать еще один класс для его обработки" - самый нормальный подход ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2014, 10:24 |
|
Class from XML
|
|||
---|---|---|---|
#18+
kmawVIT2708Но вот как работать с полями класса "T"? 1. приведение типа 2. рефлексия "каждый раз когда появится новый тип файла писать еще один класс для его обработки" - самый нормальный подход Я знаю но это надоедает. И поставщики не хотят соблюдать единый формат. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2014, 10:32 |
|
Class from XML
|
|||
---|---|---|---|
#18+
Изопропил3.dynamic Можете привести пример или ссылку (если есть под рукой) так как я никогда не пользовался этим. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2014, 10:34 |
|
Class from XML
|
|||
---|---|---|---|
#18+
[quot kmaw]VIT2708Но вот как работать с полями класса "T"? 1. приведение типа 2. рефлексия 1. приведение типа к какому типу приводить, ели я создам класс из xml ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2014, 10:35 |
|
Class from XML
|
|||
---|---|---|---|
#18+
VIT2708потом динамически из них строить классы А у вас есть алгоритм динамической генерации? Если есть, то можно Т4 юзать ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2014, 10:53 |
|
Class from XML
|
|||
---|---|---|---|
#18+
Arm79VIT2708потом динамически из них строить классы А у вас есть алгоритм динамической генерации? Если есть, то можно Т4 юзать Алгоритмов нет, я вообще впервые с таким столкнулся, и вот пытаюсь разобраться. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2014, 10:55 |
|
Class from XML
|
|||
---|---|---|---|
#18+
VIT2708, в общем случае задача нерешаемая. Я не представляю себе, как можно загрузить в программу файл неизвестной структуры и получить подходящее для бизнес-задач описание класса. есть лучший вариант, исходя из ваших хотелок - возьмите или напишите сами xsd-схему ваших xml-файлов, и по схеме (через xsd.exe к примеру) вы получите нагенерированные классы Пример: 15042035 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2014, 11:00 |
|
Class from XML
|
|||
---|---|---|---|
#18+
Arm79, Это xml файлы только с разным набором нодов, вот я и хочу создать шаблон xml для их обработки То есть идея такая: 1. Создать xml шаблон (из него в программе создавать необходимый класс) 2. Создать к этому xml шаблону дополнительный xml_sql где будут хранится параметры для сохранения в базу (для этого я напишу редактор - эту задачу я знаю как решить) xml_template -> Class (xml_sql -> Class) -> sql database. Вот хотел так это разрешить, если это правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2014, 11:16 |
|
Class from XML
|
|||
---|---|---|---|
#18+
Arm79, xsd-схему - Спасибо за подсказку, попробую ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2014, 11:18 |
|
Class from XML
|
|||
---|---|---|---|
#18+
VIT2708kmawпропущено... 1. приведение типа 2. рефлексия "каждый раз когда появится новый тип файла писать еще один класс для его обработки" - самый нормальный подход Я знаю но это надоедает. И поставщики не хотят соблюдать единый формат.Но количество поставщиков и форматов конечно. Спроектируйте свой формат, свою модель и набор преобразователей (конверторов, мапперов) из формата поставщиков в единый Ваш . Книжка в помощь . ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2014, 13:08 |
|
Class from XML
|
|||
---|---|---|---|
#18+
VIT2708У меня приходит много файлов разных форматов и я не хочу каждый раз когда появится новый тип файла писать еще один класс для его обработки, и вот подумал может можна создать список xml шаблонов классов и написать форму для их редактирования, а потом динамически из них строить классы.Может, пойти по пути преобразования кучи разношерстных XML в единый формат и последующей работы именно с этим одним форматом? Для этого даже целый XSLT придумали. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2014, 13:37 |
|
Class from XML
|
|||
---|---|---|---|
#18+
НахлобучМожет, пойти по пути преобразования кучи разношерстных XML в единый формат и последующей работы именно с этим одним форматом? Для этого даже целый XSLT придумали. Вместо кучи разношерстного C#-кода будет куча разношерстных xsl-темплейтов. Плюс, если xml достаточно объемны, доп. тормоза на выполнение трансформации. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2014, 15:07 |
|
Class from XML
|
|||
---|---|---|---|
#18+
VIT2708, Да ничего тут не сделать, если нет общего контракта ( о коем вы промолчали) как вариант ( при наличие его) xml to dictionary а со словарем работать через декоратор или цепочку декораторов, как вариант через прокси................................. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2014, 15:23 |
|
Class from XML
|
|||
---|---|---|---|
#18+
Где-то в степиVIT2708, Да ничего тут не сделать, если нет общего контракта ( о коем вы промолчали) как вариант ( при наличие его) xml to dictionary а со словарем работать через декоратор или цепочку декораторов, как вариант через прокси................................. Спасибо, осталось к dictionary прикрутить sql параметры для загрузки на сервер ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2014, 17:23 |
|
Class from XML
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныВместо кучи разношерстного C#-кода будет куча разношерстных xsl-темплейтов. Плюс, если xml достаточно объемны, доп. тормоза на выполнение трансформации. Полностью согласен с этими словами. Я вообще никогда не понимал, зачем во многие проекты вводят прослойку XML. Если есть данные и их нужно преобразовать - берём и преобразуем. Всё! Зачем их сначала перегонять в xml, а затем их xml в нужный вид? skyANAНо количество поставщиков и форматов конечно. Спроектируйте свой формат, свою модель Именно! И заставить клиентов придерживаться этого единого формата. Не согласны - наказывать деньгами или ещё как. Где-то в степиVIT2708, Да ничего тут не сделать, если нет общего контракта ( о коем вы промолчали) как вариант ... to dictionary Ну а если нет возможности заставить клиентов перейти к одному формату, то у меня тоже возникла похожая мысль использовать некий словарь. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2014, 19:26 |
|
Class from XML
|
|||
---|---|---|---|
#18+
petalvik,авторто у меня тоже возникла похожая мысль использовать некий словарь. словарь это просто хранилище данных,( мне он больше нравится ) может быть и хмлрайдер в чистом виде. вся фишка - что существует такой ящик назовем его декоратор ну или прокси, в который ложим данные, а у этого ящика реализованы основные механизмы манипуляцией данными (через базовый абстрактный), и таких ящиков может быть много для разных тем( нужд) они как матрешка могут один в другой засовываться и подбираться необходимый функционал для работы. ничего нового, все до неприличия обыденно.... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2014, 19:49 |
|
|
start [/forum/topic.php?fid=20&msg=38606945&tid=1403069]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 328ms |
total: | 483ms |
0 / 0 |