2012-10-09 3 views
6

많은 WCF 서비스를 참조하는 C# 프로젝트가 있습니다. 로컬 테스트를 위해 localhost에서 실행중인 모든 것을 허용하도록 ID 태그의 내용을 대체하려고합니다.Web.Config 변환을 사용하여 여러 항목 삽입

다음 변형은 작동하지만 첫 번째로 일치하는 위치에만 dns 요소를 삽입합니다. 따라서 5 개의 엔드 포인트가 참조되면 하나는 dns 태그를 가지게되고 다른 하나는 모두 빈 ID 요소를 갖게됩니다.

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

첫 번째 요소가 아닌 모든 요소를 ​​어떻게 변경합니까?

+0

모든 ''요소를 제거 하시겠습니까? –

+0

예, 그 부분은 정상적으로 작동합니다. 그러나 나는 또한 그 요소를 으로 바꾸고 싶습니다. 그렇게하지 못했습니다. 나는 실제로 모든 종단점을 수동으로 나열하여이 문제를 해결했지만 좀 더 우아한 해결책이 있다면 듣고 싶습니다. – Zugbo

답변

2

특성을 사용하여 삽입 할 모든 <identity> 요소와 일치하는 XPath 식을 정의합니다.

<system.serviceModel> 
    <client> 
     <endpoint> 
     <identity xdt:Locator="XPath(//identity)"> 
      <dns xdt:Transform="Insert" value="localhost"/> 
      <userPrincipalName xdt:Transform="RemoveAll"/> 
     </identity> 
     </endpoint> 
    </client> 
    </system.serviceModel> 
+1

여전히 첫 번째 일치 내용 만 업데이트하는 것 같습니다. –

+0

http://xdt.codeplex.com/SourceControl/latest#XmlTransform/XmlTransforms.cs에서 소스 코드를 탐색하면 현재 지원되지 않습니다. –

관련 문제