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=Replace を Transform=RemoveAll に置き換えることですべての要素を削除できます - すべての値を置き換えるために同様のことを達成する方法はありますか?

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 に答える