Используя OpenMappedExeConfiguration
, вы возвращаете объект «Конфигурация», который вы можете использовать, чтобы заглянуть в конфигурацию библиотеки классов (а существующие там параметры переопределяют те же имена в главном приложении конфигурации):
ExeConfigurationFileMap map = new ExeConfigurationFileMap();
map.ExeConfigFilename = "ConfigLibrary.config";
Configuration libConfig = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
AppSettingsSection section = (libConfig.GetSection("appSettings") as AppSettingsSection);
value = section.Settings["Test"].Value;
Но те параметры, которые являются уникальными для конфигурации главного приложения и не существуют в собственной конфигурации библиотеки классов по-прежнему доступны через ConfigurationManager
статического класс:
струнных серийный = ConfigurationManager.AppSettings [ "Последовательный"];
Это все еще работает. Конфигурация библиотеки классов скрывает только те параметры, которые находятся внутри его файла конфигурации; плюс вам нужно использовать экземпляр «libConfig
», чтобы получить доступ к собственным настройкам конфигурации библиотеки классов.
Два мира (основной файл app.config, classlibrary.config) могут полностью и очень успешно сосуществовать - не проблема есть у всех!
Марк
Возможный дубликат [Как я могу прочитать/напишите app.config настройки во время выполнения witho ut с использованием пользовательских настроек?] (https://stackoverflow.com/questions/3638754/how-can-i-read-write-app-config-settings-at-runtime-without-using-user-settings) – Matt