我们如何找出项目的配置文件

时间:2015-04-24 06:38:23

标签: c# .net configuration-files

我的项目中只有一个app.config,没有web.config

这是一个excel加载项项目,类库中只有一个app.config

但是当我尝试访问appSettings时,它没有返回我在app.config中保存的值

我试过

ConfigurationManager.AppSettings["KeyName"]

同样在调试期间ConfigurationManager.connectionString返回一些值,而没有我保存的连接字符串。 我在整个解决方案中搜索了返回的值,但没有运气

那么有没有办法可以识别出它所指的配置文件是哪个?

P.S我添加了对system.configuration的引用,并添加了该命名空间

1 个答案:

答案 0 :(得分:2)

ConfigurationManager.AppSettings ...将默认为应用程序配置文件。在这种情况下,应用程序将是Excel。您需要加载程序集的配置文件。

var configMap = new ExeConfigurationFileMap();
configMap.ExeConfigFilename = Assembly.GetExecutingAssembly().Location + ".config";
var config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);
var value = config.AppSettings.Settings["KeyName"].Value;

app.config文件会在构建时自动重命名为yourassembly.dll.config - 因此需要上面的第二行。还要注意访问值的代码略有不同,因为我们在这里使用Configuration类型而不是ConfigurationManager直接公开的静态包装器。