在我app.config
我添加了一个值为
<add key="KeyName" value="someValue" />
但是在我的Windows窗体中,当我尝试使用configurationmanager访问它时,它没有返回任何内容
ConfigurationManager.AppSettings["KeyName"]
这具有空值
此外,我没有在app.config中添加任何web.config或连接字符串,但我的
ConfigurationManager.connectionString
会返回一些值!!
可能是什么问题?我应该改变什么?
P.S
我添加了对system.configuration
的引用,并将其添加到命名空间中
它是一个excel加载项,只有一个具有app.config
答案 0 :(得分:1)
您需要将您使用的所有配置放在属于主机应用程序(生成可执行文件的应用程序)的app.config文件中。 如果您将配置放在dll配置文件中,它们将不会在运行时自动获取,您将必须使用类似于此帖子中的代码动态加载这些配置。不确定这是否是您的问题。 Reading dll.config (not app.config!) from a plugin module 至于连接的来源,它来自机器配置文件 %windir%\ Microsoft.NET \ Framework64 [version] \ config \ machine.config
如果您的SQL Server包含快速安装,则会将连接字符串添加到此文件
答案 1 :(得分:0)
您是否检查过您的应用程序是否返回其他AppSetting值?
static void ReadAllSettings() { 尝试 { var appSettings = ConfigurationManager.AppSettings;
if (appSettings.Count == 0)
{
Console.WriteLine("AppSettings is empty.");
}
else
{
foreach (var key in appSettings.AllKeys)
{
Console.WriteLine("Key: {0} Value: {1}", key, appSettings[key]);
}
}
}
catch (ConfigurationErrorsException)
{
Console.WriteLine("Error reading app settings");
}
}