2012-10-02 9 views
24
में एक URI स्ट्रिंग लिखने के लिए कैसे

मैं एक Windows Service बनाने रहा हूँ। Service हर रात कुछ donwload करना पड़ता है, और वजह मैं मामले मैं बाद में इसे बदलने के लिए की जरूरत है app.config में यूआरआई रखना चाहते हैं।app.config

मैं अपने app.config में एक यूआरआई लिखना चाहते हैं। क्या यह अवैध बनाता है और मैं यह कैसे संपर्क करना चाहिए?

<appSettings> 
    <add key="fooUriString" 
     value="https://foo.bar.baz/download/DownloadStream?id=5486cfb8c50c9f9a2c1bc43daf7ddeed&login=null&password=null"/> 
</appSettings> 

मेरे त्रुटियों:

- Entity 'login' not defined 
- Expecting ';' 
- Entity 'password' not defined 
- Application Configuration file "App.config" is invalid. An error occurred 
+1

http://stackoverflow.com/questions/1328538/how-do-i-escape-ampersands-in-xml बस ampersand से बचें –

उत्तर

50

आप ठीक से अपने यूआरआई में ऐम्परसेंड इनकोडिंग नहीं किया है। याद रखें कि app.config एक एक्सएमएल फ़ाइल है, इसलिए आपको भागने के लिए एक्सएमएल की आवश्यकताओं के अनुरूप होना चाहिए (उदा। &&amp; होना चाहिए, <&lt; और >&gt; होना चाहिए)। ,

<appSettings> 
    <add 
     key="fooUriString" 
     value="https://foo.bar.baz/download/DownloadStream?id=5486cfb8c50c9f9a2c1bc43daf7ddeed&amp;login=null&amp;password=null" 
    /> 
</appSettings> 

लेकिन सामान्य रूप में यदि आप तो ऐसा करने के एक स्ट्रिंग है "I <3 angle bra<kets & ampersands >>>" की तरह दिखाई देता स्टोर करने के लिए करना चाहता था:

आपके मामले में, यह इस तरह दिखना चाहिए

<appSettings> 
    <add 
     key="someString" 
     value="I &lt;3 angle bra&lt;kets &amp; ampersands &gt;&gt;&gt;" 
    /> 
</appSettings> 

void StringEncodingTest() { 
    String expected = "I <3 angle bra<kets & ampersands >>>"; 
    String actual = ConfigurationManager.AppSettings["someString"]; 
    Debug.Assert.AreEqual(expected, actual); 
} 
+0

उत्तर लोगों के लिए धन्यवाद। आप पहले थे, तो मैं तुम्हारा minuts के एक जोड़े में स्वीकार करेंगे, जब अतः देवताओं मुझे भी अनुमति देते हैं। – radbyx

7

उपयोग करके देखें: &amp; यूआरएल में & के स्थान पर