Настройка app.config

Asked
Viewd1053

2

Я хотел бы расширить ConfigurationManager, чтобы у меня был файл app.config вроде следующего:

 <configuration>

<databases>
    <add name="db1" server="someServer" dbName="superDB" userName="" password=""/>
    <add name="db2" server="anotherServer" dbName="ordinaryDB" userName="dba" password="dba"/>
</databases>

</configuration>
 

А затем получить доступ к этим полям через ConfigurationManager вот так

 string dbName = ConfigurationManager.Databases["db1"].DBName;
 

Я ознакомился с доступными вариантами настройки ( здесь например), но на самом деле это не дает мне того, чего я пытаюсь достичь. Возможно ли это вообще?

(Я понимаю, что могу сделать это, развернув собственный менеджер конфигурации, но я бы предпочел расширить то, что в настоящее время предлагает .NET framework, если это вообще возможно)

3 ответов

2

Похоже, вам следует использовать ConfigurationManager.ConnectionStrings в данном случае.

Если вы действительно хотите расширить App.Config, чтобы он содержал свои собственные разделы конфигурации, вы можете создать класс, производный от ConfigurationSection класс. Хороший пример есть здесь .

То, что вы выразили в своем вопросе ... иметь возможность делать что-то вроде ConfigurationManager.Databases, где "Базы данных" - это настраиваемое статическое свойство в классе ConfigurationManager, невозможно.

  • Хорошее замечание о соединении строк. Это не пришло в голову, несмотря на то, что я бы использовал информацию, которую хочу сконфигурировать, для создания эффективного набора строк подключения. Я полагаю, что определение строк подключения сложнее, чем простое указание сервера, имени базы данных и т.д. для пользователя. Спасибо!

    jpoh03 июля 2009, 14:39
2

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

Надеюсь, это поможет ...

Хороший учебник @ codeproject.com: http://www.codeproject.com /KB/dotnet/mysteriesofconfiguration.aspx

1

Вы можете использовать ConfigSection, тогда как этот класс вы можете добавить свой настраиваемый атрибут конфигурации в файл конфигурации.

Существует очень полезная надстройка для Visual Studio (конструктор разделов конфигурации) , которая позволяет графически проектировать разделы конфигурации .NET и автоматически генерирует весь необходимый код и определение схемы (XSD) для их.

Инструкции по установке и использованию см. здесь