XDT Config Transforms - ReplaceAll? - PullRequest
       40

XDT Config Transforms - ReplaceAll?

6 голосов
/ 28 сентября 2011

В моем файле web.config есть пользовательский раздел, подобный этой структуре:

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

Я хочу применить к нему пользовательское преобразование, чтобы я мог изменить значение ВСЕХ экземпляровэлемент Property с Name = "foo" - но я не могу заставить его работать.

Я пробовал:

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

Я могу удалить все элементы, заменив Transform= Заменить на Transform = RemoveAll - есть идеи, как мне добиться чего-то похожего, чтобы заменить все значения?

1 Ответ

7 голосов
/ 09 декабря 2011

Похоже, что Transform: Replace заменяет только первый соответствующий элемент из документации в msdn : ... Если выбрано более одного элемента, заменяется только первый выбранный элемент. Я решил эту проблему, используя комбинацию Match-Condition и SetAttributes, что-то вроде:

<Messages>
  <Message>
    <Property value="updated" xdt:Locator=Condition(@Name='foo') xdt:Transform="SetAttributes(value)" />
  </Message>
</Messages>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...