Возможен ли динамический ConfigurationSection простым способом? - PullRequest
1 голос
/ 28 марта 2011

В .NET 1.0 IConfigurationSectionHandler предлагал чистый, единый интерфейс методов для реализации обработчика конфигурации.

В .NET 2 появился ConfigurationSection, огромный неуклюжий зверь сложности и применения статических типов, размахивающий баннером с надписью «Неизвестное зло случится, если вы используете IConfigurationSectionHandler!».

Поскольку я бунтарь и пытаюсь внедрить архитектуру плагинов в древнюю статичную среду, такую ​​как .NET 2, мне нужен раздел динамической конфигурации. Ничего статичного, просто красивое дерево узлов XML или вложенные пары ключ / значение. То, что плагины могут получить доступ без определения хрупкого кода сериализации.

Как XML изначально предназначался, до того, как стал предвестником хрупких ужасов catch-22 web.config и болезненных шаблонных деревьев сериализации.

Можно ли как-нибудь получить экземпляр XMLElement или XMLReader, пожалуйста?

1 Ответ

3 голосов
/ 20 декабря 2012

Учитывая возраст этого поста, вы, возможно, уже нашли этот же ответ самостоятельно ...

Вы можете реализовать ConfigurationSection, которому нужно только переопределить защищенный метод DeserializeSection(). В пользовательском разделе конфигурации нет необходимости следовать шаблону свойств на основе атрибутов, который является нормой для конфигурации .NET 2.

DeserializeSection принимает XmlReader в качестве единственного параметра. Вы можете использовать это XmlReader для анализа XML в вашем разделе и предоставления этих данных любым способом, который вы выберете.

...