Возможно ли динамическое конфигурирование простым способом?
В.NET 1.0 IConfigurationSectionHandler предлагал чистый единый интерфейс методов для реализации обработчика конфигурации.
В.NET 2 появился ConfigurationSection, огромный неуклюжий зверь сложности и применения статических типов, размахивающий баннером, гласящим: "Неизвестное зло случится, если вы используете IConfigurationSectionHandler!".
Будучи мятежником, пытающимся внедрить архитектуру плагинов в древнюю статичную среду, подобную.NET 2, мне нужен раздел динамической конфигурации. Ничего статичного, просто красивое дерево узлов XML или вложенных пар ключ / значение. То, что плагины могут получить доступ без определения хрупкого кода сериализации.
Подобно тому, как изначально предназначался XML, до того как он стал предвестником хрупких ужасов catch-22 web.config и болезненных шаблонных деревьев сериализации.
Можно ли как-нибудь получить экземпляр XMLElement или XMLReader, пожалуйста?
1 ответ
Учитывая возраст этого поста, вы, возможно, уже нашли этот же ответ самостоятельно...
Вы можете реализовать ConfigurationSection
что нужно только переопределить защищенный метод DeserializeSection()
, Ваш пользовательский раздел конфигурации не должен следовать шаблону свойств на основе атрибутов, который является нормой для конфигурации.NET 2.
DeserializeSection
принимает XmlReader
как его единственный параметр. Вы можете использовать это XmlReader
проанализировать XML из вашего раздела и предоставить эти данные любым способом, который вы выберете.