Преобразование определенного узла в web.config

Я хочу использовать функцию преобразования VS2010 web.config, но я не уверен, что XPath следует использовать для замены определенного значения.

У меня определена следующая конечная точка службы клиента:

<client>
    <endpoint   name="IMyService"
                address="net.tcp://x.x.x.x:xx/MySvc"
                binding="netTcpBinding"
                bindingConfiguration="..."
                contract="..."
                >
        <identity>
            <servicePrincipalName value="host/testMachine.domain.com" />
        </identity>
    </endpoint>
</client>

Я хочу заменить узел servicePrincipalName следующим значением.

<servicePrincipalName value="host/productionMachine.domain.com" />

Поскольку может быть определено несколько конечных точек клиента, я предпочитаю использовать XPath, который идентифицирует конкретный узел конечной точки (в данном случае, где name="IMyService").

Итак, в псевдокоде мне нужно сделать это:

<servicePrincipalName value="host/productionMachine.domain.com" 
                      xdt:Transform="Replace" 
                      xdt:Locator="Condition([containing endpoint node] @name='IMyService')" 
                      />

Может ли кто-нибудь сказать мне, что должно быть там, где находятся эти квадратные скобки, или показать мне какой-нибудь другой необычный способ заменить этот конкретный узел?


person slugster    schedule 30.03.2011    source источник


Ответы (1)


Я бы сопоставил и заменил узел конечной точки следующим образом:

<client>
    <endpoint name="IMyService"
            address="net.tcp://x.x.x.x:xx/MySvc"
            binding="netTcpBinding"
            bindingConfiguration="..."
            contract="..."
            xdt:Transform="Replace"
            xdt:Locator="Match(name)"
            >
        <identity>
            <servicePrincipalName value="host/productionMachine.domain.com" />
        </identity>
    </endpoint>
</client>
person cyanos    schedule 22.07.2011
comment
Спасибо, я смогу проверить это через пару дней (у нас выходные), я дам вам знать, как это работает. - person slugster; 23.07.2011