我想从我的项目的App.config文件中读取一些值,但是当我这样做时:
var appsettings = System.Configuration.ConfigurationManager.AppSettings;
我只收到四个条目:StopTestRunCallTimeoutInSeconds
,LogSizeLimitInMegs
,CreateTraceListener
和GetCollectorDataTimeout
,它们甚至没有列在XML中。我的密钥username
和password
甚至没有出现。
我的App.Config看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<appSettings>
<add key="username" value="Administrator" />
<add key="password" value="password" />
</appSettings>
<system.web>
<membership defaultProvider="ClientAuthenticationMembershipProvider">
<providers>
<add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" />
</providers>
</membership>
<roleManager defaultProvider="ClientRoleProvider" enabled="true">
<providers>
<add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" />
</providers>
</roleManager>
</system.web>
</configuration>
我错过了什么吗?在我看来,我正在从一个完全不同的配置文件中读取,但没有其他配置文件。
答案 0 :(得分:9)
我找到了解决方案!问题是,我调试了一个单元测试,它位于同一解决方案中的一个不同的子项目中。我将app.config文件复制到与单元测试相同的项目中,现在工作正常。谢谢你的帮助!
答案 1 :(得分:2)
您可以通过名称
来读取您的应用程序设置var username = ConfigurationManager.AppSettings["username"]
var password = ConfigurationManager.AppSettings["password"]
AppSettings的基础数据类型是NameValueCollection。所以你根据键来拉取值。
以下是AppSettings的文档,其中显示了一个示例 http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.appsettings.aspx
答案 2 :(得分:1)
听起来您正在从QTAgentService.exe.config而不是app.config中读取。