6

我的 web.config 文件中有一个自定义部分,类似于此结构:

<Messages>
  <Message id="1'>
     <Property Name="foo" value="bar" />
  </Message>
  <Message id="2'>
     <Property Name="foo" value="bar2" />
  </Message>
</Messages>

我想对此应用自定义转换,以便我可以使用 Name="foo" 更改 Property 元素的所有实例的值 - 但我似乎无法让它工作。

我试过了:

<Messages>
  <Message>
     <Property Name="foo" value="updated" xdt:Locator=Match(Name) xdt:Transform="Replace" />
  </Message>
</Mesasges>

我可以通过用 Transform=RemoveAll 替换 Transform=Replace 来删除所有元素 - 有什么想法可以实现类似的东西来替换所有值吗?

4

1 回答 1

7

似乎 Transform:Replace 仅替换msdn 文档中的第一个匹配元素:...如果选择了多个元素,则仅替换第一个选择的元素。我通过结合使用 Match-Conditions 和 SetAttributes 解决了这个问题,例如:

<Messages>
  <Message>
    <Property value="updated" xdt:Locator=Condition(@Name='foo') xdt:Transform="SetAttributes(value)" />
  </Message>
</Messages>
于 2011-12-09T12:35:21.797 回答