ConfigurationManager.AppSettings [" KeyName"]没有返回任何值

时间:2015-04-24 05:32:15

标签: c# .net

在我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

的类库

2 个答案:

答案 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");
        }
    }