如何使用配置转换删除 ConnectionString

我有一个带有几个 ConnectionString 的 Web.config

<connectionStrings>
<add name="connStr1" connectionString="...
<add name="ConnStr2" connectionString="...
<add name="connStr3" connectionString="...

有没有使用配置转换来删除特定连接字符串的方法? 比如:

<connectionStrings>
<xdt:Remove connStr2?

显然没有正确的语法,但你明白我的意思..。

54647 次浏览

来自 MSDN 文档关于这个问题的报道:

<configuration xmlns:xdt="...">
<connectionStrings>
<add xdt:Transform="Remove" />
</connectionStrings>
</configuration>

Transform="Remove"就是你要找的魔法。还有一个 Transform="RemoveAll",您可能能够结合使用一个特定的添加(s)。

剪辑

转念一想,你也可以把 Locator属性和上面定义的 Remove结合起来,限制你实际上想删除的元素。

更明确地说:

<configuration xmlns:xdt="...">
<connectionStrings>
<add xdt:Transform="Remove" xdt:Locator="XPath(configuration/connectionStrings[@name='ConnStr2'])" />
</connectionStrings>
</configuration>

或者类似的应该可以。

这将根据名称删除特定的连接字符串。

<configuration>
<connectionStrings>
<add name="ConnStr2" xdt:Transform="Remove" xdt:Locator="Match(name)" connectionString=" " />
</connectionStrings>
</configuration>

请注意,connectionString值不是空字符串,而是一个空格。任何非空值都可以。