2015-09-17 40 views
0

我有兩個項目:UI(Winforms應用程序)和Core(dll)。 每個項目都必須擁有其配置文件。C#項目上的不同配置文件

例如:

核心項目(的settings.config)

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <appSettings> 
     <add key="environment" value="development"/> 
    </appSettings> 
</configuration> 

UI項目(app.config)中

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <appSettings> 
     <add key="skin" value="win"/> 
    </appSettings> 
</configuration> 

從核心我讀的settings.config爲:

System.Configuration.ConfigurationFileMap fileMap = new System.Configuration.ConfigurationFileMap("settings.config"); 
System.Configuration.Configuration configuration = System.Configuration.ConfigurationManager.OpenMappedMachineConfiguration(fileMap); 
string environment = configuration.AppSettings.Settings["environment"].Value; 

At這一點崩潰並轉儲我無法將System.Configuration.DefaultSection投到System.Configuration.AppSettingsSection

+1

您確定要機水平的配置?除非你做了非常特殊的事情,而是在構建期間拷貝配置文件到DLL旁邊,你可以使用Exe level配置,如http://stackoverflow.com/questions/594298/c-sharp-dll-config-file –

回答

0

我想你需要的是這個

 ExeConfigurationFileMap configFileMap = new ExeConfigurationFileMap() 
     { 
      ExeConfigFilename = "settings.config" 
     }; 
     var configuration = ConfigurationManager.OpenMappedExeConfiguration(configFileMap, 
      ConfigurationUserLevel.None); 
     var section = (AppSettingsSection)configuration.GetSection("appSettings"); 
     string value = section.Settings["environment"].Value; 
相關問題