我有一个使用web.debug.config文件转换的web.config文件。试图通过System.Configuration.ConfigurationManager.AppSettings访问这些值是什么都没有。
我的web.config appSettings为空。
<configuration>
<appSettings>
</appSettings>
</configuration>
我的web.debug.config转换已应用。这是一个样本。
<configuration>
<appSettings>
<add key="CommonURL" value="localhost/mysite/" xdt:Transform="Insert" />
</appSettings>
</configuration>
这是尝试获取此值的代码,返回null。
var cu = System.Configuration.ConfigurationManager.AppSettings["CommonURL"];
有关为什么会这样的任何想法?
答案 0 :(得分:3)
假设从Visual Studio运行时System.Configuration.ConfigurationManager.AppSettings
没有任何结果,那么这就是预期的行为。您应该将CommonURL
appSetting添加到web.config
文件,并将web.debug.config
中的条目更改为:
<add key="CommonURL" value="localhost/mysite/"
xdt:Transform="Replace" xdt:Locator="Match(key)" />
这些更改将允许您从Visual Studio运行时获取web.config
中指定的值,并允许在执行时将该值替换为web.debug.config
中定义的值转换(例如,通过“发布”功能或通过自定义MSBuild脚本)。请记住,在发布时应用转换,而不是在开始运行调试或发布版本时应用。 web.config文件中的值始终是值得尊重的值。