web.config转换元素不可通过System.Configuration.ConfigurationManager获得

时间:2011-07-07 03:07:47

标签: c# visual-studio-2010

我有一个使用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"];

有关为什么会这样的任何想法?

1 个答案:

答案 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文件中的值始终是值得尊重的值。