我在我的Windows应用程序中使用ConfigurationManager.AppSettings[myKey]从app.config文件读取值,但返回的值始终为null,即使该键存在且具有值,是否有人知道原因?
谢谢
一个更简单的替代方法是使用设置文件。这个文件封装了在设计器GUI中创建和维护App.config值,并生成访问这些值的代码。
要添加一个设置文件,在VS中右键单击您的项目,选择“添加->新项目”,选择“设置文件”并给它一个有意义的名称,例如MainSettings.settings
。然后您可以添加一个项目,例如Foo
,指定它是应用程序范围还是用户范围,定义它的类型并分配一个值。在您的代码中,您可以通过简单地编写MainSettings.Default.Foo
来检索该值。
编译后,您可以通过编辑配置文件来更改值。设置将显示如下:
<applicationSettings>
<YourNamespace.MainSettings>
<setting name="Foo" serializeAs="String">
<value>Bar</value>
</setting>
</YourNamespace.MainSettings>
</applicationSettings>
从你提供的信息来看很难确定问题所在:
<appSettings>
<add key="userName" value="user2" />
<add key="emilsLimit" value="50" />
</appSettings>
当我在类库项目中获取这些内容时,它会抛出空异常,但是当我从类库项目中删除app.config并添加到控制台项目中时,它可以正常工作。干杯!
注意:控制台中已添加类库项目引用。
我曾经遇到过同样的问题,但是当我在末尾添加一个空字符串(+“”)时,它就可以在appsettings中获取到该字符串了。
例如:
string s = ConfigurationManager.AppSettings["myKey"] + "";