【发布时间】:2014-08-24 19:08:57
【问题描述】:
创建新的 Visual C# 控制台应用程序 (.NET Framework 4.5) 后,此类项目包含默认的 App.config 文件。
在将 System.Configuration 的引用添加到项目并在某些源文件using System.Configuration; 中使用后,我可以使用静态类ConfigurationManager 来操作 App.config 文件。但之前,我想在文件中添加一些设置,所以它是这样的:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="DeployWeb" value="true" />
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
现在,我可以写这样的东西来获取设置的值:
Boolean deployWeb = false;
Boolean.TryParse(ConfigurationManager.AppSettings["DeployWeb"], out deployWeb);
但是我没有设置读取哪个配置文件,不过没关系,因为有默认的。但是我可以通过右键单击项目->添加->新建项目...->应用程序配置文件来添加更多配置文件,这样我就有了例如5个配置文件,如图所示:
ConfigurationManager 仍然会读取默认的,但我想手动控制,使用哪个配置文件。我想知道,是否有适当的方法来设置 ConfigurationManager 配置文件名以使用等,以及这是否不是一个坏习惯。我知道如何在调试/发布模式下使用不同的配置,但就我而言,我有一个应用程序,例如,它可以在不同的模式下运行以用于不同的发布目的。
问题:是否可以在一个项目中拥有多个配置文件,并且能够切换我要使用的配置文件。这不是一个不好的做法,我应该使用其他方法来达到我的目的吗?在我的情况下使用构建事件不合适(我认为)。
PS.很抱歉我的问题延伸了,但我的问题很简单,可以用两句话问,但正如rules 所说,问题应该包含详细信息。
更新: 来自existing answer“选项:您可以使用 ConfigurationManager 类通过代码加载备用配置文件。”通过阅读msdn,我没有得到我应该使用哪种方法。我应该打开 Exe 配置吗?
【问题讨论】:
-
@Jonesy 是的,我看到了这个问题,我刚刚更新了我的问题,你能看看..
-
使用
ConfigurationManager类需要显式引用System.Configuration.dll,因为在C# 项目模板中默认不引用此程序集。
标签: c# .net visual-studio