如何在一个项目中使用多个应用程序配置文件?

创建新的Visual C#控制台应用程序(.NET Framework 4.5)后,此类项目包含默认的App.config文件。

新的Visual C#控制台应用程序

将System.Configuration的引用添加到项目并使用System.Configuration在某个源文件中使用它using System.Configuration; 我可以使用静态类ConfigurationManager来操作App.config文件。 但之前,我想在文件中添加一些设置,所以它有点像这样:

          

现在,我可以写这样的东西,以获得设置的值:

 Boolean deployWeb = false; Boolean.TryParse(ConfigurationManager.AppSettings["DeployWeb"], out deployWeb); 

但是我没有设置要读取的配置文件,但是没关系,因为有默认配置文件。 但是我可以通过右键单击项目 – >添加 – >新项目… – >应用程序配置文件来添加更多配置文件,以便我有例如5个配置文件,如图所示:

项目中的几个配置文件

ConfigurationManager仍然会读取默认值,但我想手动控制使用哪个配置文件。 我想知道,是否有适当的方法来设置ConfigurationManager配置文件名使用等,如果这不是一个坏的做法。 我知道如何在调试/发布模式下使用不同的配置,但在我的情况下,我有一个应用程序,例如,可以在不同的模式下运行,以便在发布时用于不同的目的。

问题 :是否可以在项目中包含多个配置文件,并且能够切换我想要使用的配置文件。 这不是一种不好的做法,我是否应该为我的目的使用另一种方法? 在我的情况下使用构建事件是不合适的(我认为)。

PS。 我很抱歉伸出我的问题,但是我很简单,可以用两句话来问,但正如规则所说,问题应该包含细节。

更新 :从现有的答案 “选项:您可以使用ConfigurationManager类通过代码加载备用配置文件。” 从阅读msdn我没有得到我应该使用哪种方法。 我应该打开Exe配置吗?

它可以使用映射的配置文件来完成,

 ExeConfigurationFileMap configFileMap = new ExeConfigurationFileMap(); configFileMap.ExeConfigFilename = "App4.config"; // full path to the config file // Get the mapped configuration file Configuration config = ConfigurationManager.OpenMappedExeConfiguration( configFileMap, ConfigurationUserLevel.None); //now on use config object AppSettingsSection section = (AppSettingsSection)config.GetSection("appSettings");