ConfigurationManager.GetSection пропускает дубликаты - PullRequest
0 голосов
/ 27 апреля 2011

Короче говоря, метод .Net ConfigurationManager.GetSection пропускает дубликаты, и я ищу лучшую практику для обработки этого.У меня есть файл конфигурации, который включает в себя что-то вроде этого:

   <views>
     <view name="BusinessUnitsView" Desc="desc1"/>
     <view name="BusinessUnitsView" Desc="desc2"/>
   </views>

У меня есть график объектов, в которые загружается конфигурация, где коллекции происходят из нашей производной версии ConfigurationElementCollection.Коллекция представлений на графике содержит только один элемент после загрузки вышеуказанного. Насколько я понимаю, это просто способ, которым ConfigurationManager обрабатывает дубликаты.Последний элемент с тем же ключом выигрывает.

Я могу выдать исключение при обнаружении дубликата с помощью BaseAdd (element, true).Однако, если это возможно, я бы хотел, чтобы объект был полностью загружен с дубликатами, так как конфигурация читается на уровне службы, и я хотел бы обнаружить и устранить проблему на стороне потребления службы.

Есть ли у меня какие-либо опции для изменения способа добавления в коллекцию работы?

Ответы [ 2 ]

1 голос
/ 27 апреля 2011

Может быть, вы хотите перебирать только список, но основная идея конфига заключается в том, что вы можете сделать

var view = SomeConfigClass["BusinessUnitsView"];

Это позволяет только один ответ.

1 голос
/ 27 апреля 2011

Вам нужно будет создать свой собственный ConfigurationSection. См. здесь или здесь (метод второй ссылки устарел, но все еще может пролить свет)

Это позволяет вам представлять внутренние переменные конфигурации в виде коллекций и устанавливать свойства, такие как DefaultValue и IsRequired.

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