2013-10-30 4 views
8

मेरे पास मेरे प्रोग्राम में एक शर्त है जहां मुझे एक सर्वर (उदा। http://server1.my.corp/) गठबंधन करना है जो किसी सापेक्ष पथ (उदा। /Apps/TestOne/) के साथ समाप्त होने वाला स्लैश हो सकता है या नहीं। docs के अनुसार, Uri चाहिए ...अनावश्यक स्लैश को हटाने के लिए System.Uri का उपयोग

श्रेणीबद्ध URI के लिए पथ जैसे दृश्यों संकुचित द्वारा Canonicalizes /./, /../, // ...

तो जब मैं var url = new Uri(server + relativePath) की तरह कुछ करता हूं, मुझे उम्मीद है कि यह अन्यथा http://server1.my.corp//Apps/TestOne/ होगा और डबल स्लैश (यानी // ->/) हटाएं, लेकिन ToString, AbsolutePath और विभिन्न विकल्प अभी भी अनावश्यक/डुप्लिकेट स्लैश दिखाते हैं। क्या मैं Uri का उपयोग नहीं कर रहा हूं?

उत्तर

15

Uri class के लिए रचनाकारों पर नज़र डालें। कैनोनाइज्ड व्यवहार प्राप्त करने के लिए आपको आधार उरी और एक सापेक्ष पथ निर्दिष्ट करने की आवश्यकता है। इस तरह कुछ कोशिश करें:

var server = new Uri("http://server1.my.corp/"); 
var resource = new Uri(server, "/Apps/TestOne/"); 
संबंधित मुद्दे