在项目(在本例中为单元测试项目)中包含以下web.conig文件:

...
<appSettings>
  ...
  <add key ="SmtpPort" value="00"/>
  <add key="SmtpHost" value="site.site.com"/>
  <add key=""/>
</appSettings>
...


以下单元测试失败:

[TestMethod]
public void VerifyAppSettingsAreRead()
{
    string port = System.Web.Configuration.WebConfigurationManager.AppSettings["SmtpPort"];
    string host = System.Web.Configuration.WebConfigurationManager.AppSettings["SmtpHost"];

    Assert.IsTrue(!String.IsNullOrEmpty(port) && !String.IsNullOrEmpty(host));
}


此外,System.Web.Configuration.WebConfigurationManager.AppSettings.AllKeys仅列出了一个密钥,而在web.config文件中根本找不到。实际上,在整个解决方案中搜索密钥不会产生任何效果。

如何更正WebConfigurationManager的行为而不返回正确的密钥?

最佳答案

我看到您引用了app.config和web.config。

如果您尝试使用web.config设置,则可能应该使用

WebConfigurationManager

喜欢:

[TestMethod]
public void VerifyAppSettingsAreRead()
{
    string port = System.Web.Configuration.WebConfigurationManager.AppSettings["SmtpPort"];
    string host = System.Web.Configuration.WebConfigurationManager.AppSettings["SmtpHost"];

   Assert.IsTrue(!String.IsNullOrEmpty(port) && !String.IsNullOrEmpty(host));
}

关于c# - ConfigurationManager.AppSettings无法找到设置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34954985/

10-10 20:05
查看更多