【发布时间】:2013-06-27 07:03:01
【问题描述】:
我正在为 .NET 2.0 中的配置和设置类而苦苦挣扎
如果名为app.config的文件中包含以下内容
<config>
<appSettings>
<add key="Foo" value="Hello World!"/>
</appSettings>
</config>
我知道我可以通过
访问 appSetting// this returns "Hello World!"
ConfigurationManager.AppSettings["Foo"]
但是,如果文件名为 app1.config(或任何其他名称),我将无法访问 appSetting。
只要我理解,ConfigurationManager.OpenExeConfiguration 我应该阅读自定义配置设置文件。
Configuration conf = ConfigurationManager.OpenExeConfiguration(@"..\..\app1.config");
// this prints an empty string.
Console.WriteLine(conf.AppSettings.Settings["Foo"]);
但是conf.AppSettings.Settings["Foo"] 返回一个空字符串。
我也试过下面的代码,但没有成功
ExeConfigurationFileMap exeFileMap = new ExeConfigurationFileMap();
exeFileMap.ExeConfigFilename = System.IO.Directory.GetCurrentDirectory()
+ "\\App1.config";
Configuration myConf = ConfigurationManager.OpenMappedExeConfiguration
(exeFileMap, ConfigurationUserLevel.None);
// returns empty string as well
Console.WriteLine(myConf.AppSettings.Settings["Foo"]);
如何从不名为 app.config 的文件中读取设置?
【问题讨论】:
-
ConfigurationManager.OpenExeConfiguration(@"..\..\app1.config");不起作用? -
重点是 conf.AppSettings.Settings["Foo"] 返回一个空字符串。我期待“Hello World!”
-
OpenExeConfiguration 获取可执行(exe)文件的路径作为参数,而不是设置文件的路径
-
是的,我也尝试使用 ExeConfigurationFileMap 但仍然无法正常工作。
-
嗨,伙计!我有相同的问题。你有什么办法让它发挥作用吗?
标签: c# configurationmanager appsettings