无法从App.config中读取密钥

时间:2013-04-24 15:55:40

标签: c# visual-studio-2012 app-config

我想从我的项目的App.config文件中读取一些值,但是当我这样做时:

var appsettings = System.Configuration.ConfigurationManager.AppSettings;

我只收到四个条目:StopTestRunCallTimeoutInSecondsLogSizeLimitInMegsCreateTraceListenerGetCollectorDataTimeout,它们甚至没有列在XML中。我的密钥usernamepassword甚至没有出现。

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

我错过了什么吗?在我看来,我正在从一个完全不同的配置文件中读取,但没有其他配置文件。

3 个答案:

答案 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中读取。

http://msdn.microsoft.com/en-us/library/ff934570.aspx