Я новичок в этой теме и хотел бы узнать ваше мнение, что мне следует делать или как я могу решить следующее:
Я занимаюсь разработкой клиента веб-службы C #, который извлекает данные из базы данных, стоящей завеб-сервис.Ответ веб-службы содержит данные в элементе CDATA в виде XML.Схема xsd доступна.В XML есть элементы, которые представляют один набор данных / строку.Я должен использовать только несколько полей одного набора данных.После получения данных я должен проверить некоторые бизнес-правила / условия и записать эти поля в другую систему.Считывая некоторые значения из другой системы, проверьте некоторые бизнес-правила и отправьте их обратно в веб-службу, инкапсулированную в соответствующем формате XML в соответствии со схемой.
То, что я сделал до сих пор.Я использовал XSD.exe для генерации классов C # в соответствии с базовой схемой.Я думаю, что у меня есть следующие варианты, чтобы заставить мой сценарий работать:
ORM Framework: Это должно быть излишним для моего приложения.Или это не решение, поскольку я не связываюсь с базой данных напрямую.
Automapper: кажется хорошим решением.Но я думаю, что это не такой гибкий вариант, как мой 3. вариант (см. Далее).Если ошибка в сопоставлении обнаружена после развертывания моего приложения, я должен перестроить приложение.Другим негативным моментом будет, если схема изменится, мне придется пересобрать приложение снова.(Или я всегда адаптировал свое приложение в соответствии со схемой?)
Через пользовательский файл сопоставления и отражения: я не уверен, реально ли это осуществимо, но это было бы наиболеегибкое решение на мой взгляд.Решение будет похоже на это http://www.techrepublic.com/article/applied-reflection-dynamically-accessing-properties-of-a-class-at-runtime/6099345 Если я правильно понял эту статью, то был бы файл конфигурации, который отображает тип класса и его свойства на типы назначения, например: SourceClassType = ClassA, SourcePropertyName = PropA-> DestinationClassType = ClassB, DestinationPropertyName = PropX.
Linq2Xml: С помощью Linq2Xml я мог извлечь необходимые данные из XML и поместить их в свои собственные определенные классы.Но как мне поместить данные обратно в XML в соответствии со схемой, которую ожидает веб-служба?
Правильно ли выполнен мой анализ?Я что-то не так понял?Чтобы вы посоветовали?У меня есть другие варианты?