2012-10-09 19 views
6

को बदलता है मुझे एक सी # प्रोजेक्ट मिला है जो बहुत सी डब्ल्यूसीएफ सेवाओं का संदर्भ देता है। स्थानीय परीक्षण के लिए, मैं पहचान टैग की सामग्री को प्रतिस्थापित करना चाहता हूं ताकि वह लोकहोस्ट पर चल रहे कुछ भी स्वीकार कर सके।वेब के साथ कई आइटम डालने। कॉनफिग

निम्नलिखित परिवर्तन काम करता है, लेकिन केवल पहले मिलान स्थान में डीएनएस तत्व डाला जाता है। इसलिए, अगर मेरे पास संदर्भित 5 अंतराल थे, तो किसी के पास डीएनएस टैग होगा, और अन्य सभी के पास खाली पहचान तत्व होंगे।

<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 अभिव्यक्ति को परिभाषित करने के लिए xdt:Locator विशेषता का उपयोग करें।

<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 पर स्रोत कोड ब्राउज़ करना मुझे यह निष्कर्ष निकालने के लिए प्रेरित करता है कि यह वर्तमान में समर्थित नहीं है –

संबंधित मुद्दे