Как расширить встроенные поставщики конфигурации в .Net для добавления настраиваемого хранилища? - PullRequest
2 голосов
/ 03 апреля 2009

У нас есть база данных конфигурации XML. Вместо того, чтобы обращаться к этому напрямую через API базы данных, я бы хотел расширить классы конфигурации .Net, добавив пользовательский поставщик хранилища.

Я не уверен, с чего начать. Я видел блок приложения конфигурации, но это, кажется, устарело. Я использую .Net 3.5.

На какие классы я должен смотреть? Какие интерфейсы мне нужно реализовать? Это было сделано в другом месте?

Спасибо

1 Ответ

5 голосов
/ 03 апреля 2009

Вы можете загрузить произвольные файлы в систему конфигурации, но вам нужно будет использовать ConfigurationManager.OpenMappedExeConfiguration, передав ExeConfigurationFileMap, который включает ваш файл.

Но файл должен быть в формате .config, используя <configuration> в качестве корневого элемента и <configSections> для определения пользовательских разделов. Как только это будет сделано, подклассы ConfigurationElement и соавт. допускает высокую степень структурной гибкости или просто анализирует элемент самостоятельно (переопределить ConfigurationElement.DeserializeElement).

Альтернативно, используйте некоторую абстракцию. Иметь собственный элемент в обычной .configuration с обработчиком раздела конфигурации, который загружает файл, указанный в основной .config.

...