Загрузка другого файла конфигурации приложения во время выполнения может быть выполнена с использованием сопоставленного файла конфигурации.Вам нужно добавить ссылку на System.Configuration.dll
в вашем проекте.
Установите значение свойства Copy to Output Directory
для всех дополнительных файлов конфигурации (например, App1.config, App2.config и т. Д.), Отличных от значения по умолчанию (App.config), равным Copy if newer
.Таким образом, они будут доступны в выходном каталоге проекта (\ bin \ debug) после сборки проекта.Значение этого свойства по умолчанию: Do not copy
.
Ниже приведен фрагмент кода о том, как считывать данные конфигурации из файлов конфигурации не по умолчанию:
ExeConfigurationFileMap configFileMap = new ExeConfigurationFileMap();
configFileMap.ExeConfigFilename = "App1.config"; // app1.config should be present in root directory from where application exe is kicked off
// Get the mapped configuration file
var config = ConfigurationManager.OpenMappedExeConfiguration(
configFileMap, ConfigurationUserLevel.None);
//get the relevant section from the config object
AppSettingsSection section = (AppSettingsSection)config.GetSection("appSettings");
//get key value pair
var keyValueConfigElement = section.Settings["appSettingsKey"];
var appSettingsValue = keyValueConfigElement.Value;
Если у вас есть несколько файлов конфигурации приложения, вы можете сохранить настройку по умолчанию в файле App.config
, с помощью которого вы можете во время выполнения принять решение о том, какой дополнительный файл конфигурации загрузить, например, App1.config
Примечание : Учтите, что код, подобный ConfigurationManager.AppSettings["DeployEnv"]
, все равно будет считывать данные из файла App.config
по умолчанию.Это поведение не может быть изменено.Загрузка файла по умолчанию App.config
не может быть запрещена.Вы должны использовать альтернативные средства, как показано выше, для чтения данных из нестандартных файлов конфигурации