Возможно ли динамическое конфигурирование простым способом?

В.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 из вашего раздела и предоставить эти данные любым способом, который вы выберете.

Другие вопросы по тегам