После создания нового приложения Visual С# Console (.NET Framework 4.5) такой проект содержит файл App.config по умолчанию.
После добавления ссылки для System.Configuration для проекта и использования ее в каком-то исходном файле using System.Configuration;
я могу использовать статический класс ConfigurationManager
для работы с файлом App.config. Но прежде, я хочу добавить некоторые параметры в файл, так что это примерно так:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="DeployWeb" value="true" />
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
Теперь я могу написать что-то вроде этого, чтобы получить значение параметра:
Boolean deployWeb = false;
Boolean.TryParse(ConfigurationManager.AppSettings["DeployWeb"], out deployWeb);
Однако я не задал, какой файл конфигурации читать, но все в порядке, потому что есть значение по умолчанию. Но я могу добавить больше файлов конфигурации, щелкнув правой кнопкой мыши по проекту → Добавить → Новый элемент... → Файл конфигурации приложения, так что у меня есть, например, 5 файлов конфигурации, например, на картинке:
И ConfigurationManager
по-прежнему будет читать по умолчанию, но я хочу вручную управлять, какой файл конфигурации использовать. Я хочу знать, если есть подходящий способ установить имя файла конфигурации ConfigurationManager
для использования и т.д., И если это не плохая практика. Я знаю, как использовать разные конфигурации в режиме отладки/выпуска, но в моем случае у меня есть приложение, которое может быть запущено в разных режимах для разных целей в выпуске, например.
Вопрос. Возможно ли иметь несколько конфигурационных файлов в проекте и иметь возможность переключаться на тот, который я хочу использовать. Разве это не плохая практика, я должен использовать какой-то другой подход для своей цели? Использование событий построения не подходит в моем случае (я думаю).
PS. Прошу прощения за растяжку моего вопроса, однако мой вопрос довольно прост и может быть просто задан в двух предложениях, но в качестве правил говорит, вопрос должен содержать детали.
UPDATE: От уже существующего ответа "Опция: вы можете использовать класс ConfigurationManager для загрузки альтернативного файла конфигурации по коду." От чтения msdn Я не получил, какой из методов должен использовать. Должен ли я открыть конфигурацию Exe?