在项目(在本例中为单元测试项目)中包含以下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/