Сопоставить несколько каналов XML с одним объектом - PullRequest
0 голосов
/ 10 июля 2010

Используя C #, я хочу иметь возможность отобразить несколько каналов XML на один пользовательский объект. Каждый xml-канал имеет одинаковые данные, но имеет собственное соглашение об именах.

В идеале я хотел бы сохранить для каждого фида xml свое собственное отображение и применять его автоматически при копировании данных xml в мой объект. Я хотел бы сделать это, так как система может вырасти до сотен каналов, поэтому простота сохранения сопоставлений облегчит обслуживание, чем написание кода для каждого канала.

Так, например, мой объект состоит из

ID, Имя

И xml feed один

Код, ProductName

xml feed два -

UniqueID, FullName

так что сопоставления будут

ID -> Код Имя -> ProductName

и

ID -> UniqueID Имя -> ФИО

Каков наилучший способ достижения этого?

1 Ответ

0 голосов
/ 10 июля 2010

Я бы создал раздел конфигурации в вашем файле конфигурации.Затем вы можете иметь узел для каждого канала.Тогда есть узлы внутри, которые имеют информацию отображения.Узлы в вашем канале узла будут соответствовать свойствам вашего объекта c #, а значением узла будет имя узла в вашем XML-файле.Вы также можете даже добавить полный путь xpath, если он более сложный.

<feed url="">
    <id>Code</id>
    <Name>ProductName</Name>
</feed>

Тогда в вашем приложении вы можете загрузить канал.Затем найдите узел в вашем конфигурационном файле, чтобы узнать, как сопоставить поля вашему объекту C # из полей в вашем XML-файле.

Только один подход, который облегчает настройку и расширение без изменения приложения, есливаш объект c # изменяется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...