2017-01-09 96 views
0

我想从app.config文件的appSettings部分读取值。我不明白为什么,但ConfigurationManager只读第一个键(log4net.Internal.Debug),同时我需要另外两个键。这里是appSettings。ConfigurationManager.AppSettings只读第一个键

<appSettings> 
    <add key="log4net.Internal.Debug" value="true" /> 
    <add key="SendGridUser" value="some value" /> 
    <add key="SendGridPassword" value="some value" /> 
    </appSettings> 

下面是代码:

var username = ConfigurationManager.AppSettings["SendGridUser"]; 
var password = ConfigurationManager.AppSettings["SendGridPassword"]; 
+0

您是否收到任何错误或空白值? –

+0

这段代码没有错。问题在于你没有向我们展示的部分代码。 – Sefe

+0

它总是读取第一个值吗? – NicoRiff

回答

2

如果在调试模式下,您在AppSettings收集看到的只有一个键,那么就意味着ConfigurationManager不读书,你认为它应该读取配置文件。可能的原因:

  • 您不必“复制总是”选择配置文件Copy to Output Directory设置“如果较新的复制”。因此文件未在生成文件夹中更新。
  • 调试版本中存在transformation文件,用于从配置中删除一些设置。检查解决方案资源管理器中是否有App.Debug.config
+0

当然,这个特殊的app.config没有转换。你是正确的复制到输出目录设置,但这并没有帮助。 –

+0

@ andrey.shedko嗯尝试重建解决方案,并检查你有什么在项目生成文件夹 –