El uso de OpenMappedExeConfiguration
le devuelve un objeto de "Configuración" que puede utilizar para echar un vistazo a la configuración de la biblioteca de clase (y las configuraciones que existen invalidarán las que llevan el mismo nombre en la aplicación principal config):
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;
Pero esos valores que son exclusivos de configuración de la aplicación principal y no existen en la propia configuración de la biblioteca de clases siguen siendo accesibles a través de la clase estática ConfigurationManager
:
cadena de serie = ConfigurationManager.AppSettings ["De serie"];
Eso todavía funciona: la configuración de la biblioteca de clase solo oculta las configuraciones que están dentro de su archivo de configuración; Además, debe usar la instancia "libConfig
para obtener acceso a la configuración de configuración de la biblioteca de la clase también.
Los dos mundos (principal app.config, classlibrary.config) pueden coexistir totalmente y muy felizmente, no una existe un problema en absoluto!
Marc
duplicado posible de [¿Cómo puedo leer/escribir app.config ajustes en tiempo de ejecución witho ut utilizando la configuración del usuario?] (https://stackoverflow.com/questions/3638754/how-can-i-read-write-app-config-settings-at-runtime-without-using-user-settings) – Matt