6

我有一个 C# 项目,它引用了很多 WCF 服务。对于本地测试,我想替换身份标签的内容,以便它接受在 localhost 上运行的任何内容。

以下转换有效,但仅在第一个匹配位置插入 dns 元素。所以,如果我有 5 个端点被引用,一个会有 dns 标签,而其他的都有空的标识元素。

<system.serviceModel>
    <client>
      <endpoint>
        <identity>
          <dns xdt:Transform="Insert" value="localhost"/>
          <userPrincipalName xdt:Transform="RemoveAll" value="someIdentity" />
        </identity>
      </endpoint>
    </client>
  </system.serviceModel>

如何更改所有匹配元素,而不仅仅是第一个?

4

1 回答 1

2

使用该xdt:Locator属性定义 XPath 表达式以匹配<identity>您要插入的所有元素。

  <system.serviceModel>
    <client>
      <endpoint>
        <identity xdt:Locator="XPath(//identity)">
          <dns xdt:Transform="Insert" value="localhost"/>
          <userPrincipalName xdt:Transform="RemoveAll"/>
        </identity>
      </endpoint>
    </client>
  </system.serviceModel>
于 2013-04-01T20:54:14.577 回答