2011-02-11 13 views
13

मेरे पास एक स्ट्रिंग है जिसे मैं मानक यूआरएल प्रारूप में एन्कोड करना चाहता हूं। जो मैंने पाया है, उससे मुझे httpUtility.urlEncode विधि के माध्यम से ऐसा करने में सक्षम होना चाहिए, लेकिन मुझे लगता है कि यह उपलब्ध नहीं है।मैं विजुअल स्टूडियो 2010 में UrlEncode क्यों नहीं ढूंढ सकता या उपयोग नहीं कर सकता?

मैंने System.Web और System.Net दोनों के संदर्भों का उपयोग करने के लिए "उपयोग" संदर्भ जोड़ा है। मैंने अन्य रूपों के बीच server.urlEncode के अन्य संदर्भ भी देखे हैं, लेकिन मुझे कहीं भी विधि दिखाई नहीं दे रही है।

मैं विजुअल स्टूडियो 2010 में सी # के नवीनतम संस्करण का उपयोग कर रहा हूं। क्या इस विधि में विधि को अलग-अलग कहा जाता है, कहीं और छिपा हुआ है, या क्या मैं आधार से पूरी तरह से बंद हूं?

उत्तर

28

डिफ़ॉल्ट रूप से, विजुअल स्टूडियो 2010 में नई परियोजनाएं .NET Framework 4.0 क्लाइंट प्रोफ़ाइल को लक्षित करती हैं, जिसमें System.Web असेंबली शामिल नहीं है।

आप फ्रेमवर्क के संस्करण को बदल सकते हैं कि आपकी परियोजना आपके प्रोजेक्ट की गुणों में लक्षित है। "एप्लिकेशन" टैब के अंतर्गत, "लक्ष्य ढांचे" लेबल वाले कंबोबॉक्स से ".NET Framework 4.0" का चयन करें।

फिर, सुनिश्चित करें कि आपने "संदर्भ जोड़ें" संवाद का उपयोग करके System.Web का संदर्भ जोड़ा है।

अंत में, System.Web नाम स्थान के लिए अपने वर्ग के शीर्ष करने के लिए एक using directive जोड़ें:

using System.Web; 


आप HttpUtility कक्षा में UrlEncode method के विभिन्न भार के मिल जाएगा। नमूना कोड:

HttpUtility.UrlEncode("http://www.google.com/"); 
+0

जैसा कि मेरे प्रश्न में बताया गया है, मेरे पास है; हालांकि मुझे कोड को हाइलाइट करना चाहिए ताकि यह अधिक दिखाई दे। – Sootah

+0

@ सुट्टाः आप हमें यह बताना भूल गए कि आपने किस प्रकार की परियोजना बनाई है। –

+0

बस एक मानक WinForms ऐप। – Sootah

2

इसे अलग-अलग नाम नहीं दिया जा सकता है क्योंकि विजुअल स्टूडियो कक्षा या विधि नामों की आपूर्ति नहीं करता है, .NET Framework करता है।

मैं आपको बता सकता हूं कि System.Web। HttpUtility और System.Web। HttpServerUtility कक्षाओं में UrlEncode(string) नामक एक विधि शामिल है।

+0

इसमें उस विधि के [कई अन्य ओवरलोड] (http://msdn.microsoft.com/en-us/library/s2x4538s.aspx) भी शामिल हैं। और 'HttpServerUtility.UrlEncode' केवल' HttpUtility.UrlEncode 'को आंतरिक रूप से कॉल करता है; वे एक ही विधि हैं। –

+0

वह सब सिस्टम। वेब मुझे देता है: AspNetHostingPermission, AspNetHostingPermissionAttribute, और AspNetHostingPermissionLevel – Sootah

+0

यह दृढ़ता से इंगित करेगा कि आप System.Web dll का संदर्भ खो रहे हैं, या आप गलत प्रोफ़ाइल को लक्षित कर रहे हैं। –

0

क्योंकि आप केवल देखने AspNetHostingPermission, AspNetHostingPermissionAttribute, और AspNetHostingPermissionLevel, मैं दृढ़ता से (अन्य लोगों की तरह) को संदेह है कि आप एक संदर्भ खो रहे हैं।

सबसे अच्छा आप एक नई परियोजना शुरू कर सकते हैं, क्योंकि यह आपकी पूरी परियोजना को बर्बाद किए बिना संदर्भ जोड़ने/हटाने के लिए बहुत जटिल है।

How to: Add or Remove References in Visual Studio (एमएसडीएन) दिखाता है कि संदर्भ कैसे जोड़ें/निकालें। आपके मामले में, आपको System.Web संदर्भ को चेक/जोड़ना चाहिए।

1

हां, संदर्भ जोड़ना मेरा जवाब था। लेकिन सुनिश्चित करें कि आप प्रोजेक्ट को दोबारा जांचें, जिसमें यह है, अगर आपके समाधान में 1 से अधिक प्रोजेक्ट हैं। मुझे 3 परियोजनाओं के साथ समाधान मिला। System.Web 2 परियोजनाओं में जोड़ा गया था लेकिन तीसरी परियोजना नहीं।

मैंने यह जानने का प्रयास करने में एक घंटे बिताए कि मैं HttpUtility का उपयोग क्यों नहीं कर सका क्योंकि यह मुख्य परियोजना में एक संदर्भ था। लेकिन मैंने समाधान की उप-परियोजनाओं की जांच नहीं की।

उम्मीद है कि यह किसी की मदद करेगा।

+0

मुझे एक ही समस्या थी। फ्रेमवर्क 4.0 था लेकिन आईडीई System.Net.WebUtility.UrlEncode विधि को पहचान नहीं सका। यह केवल सभी निर्भर परियोजनाओं में System.web.dll को जोड़ने के बाद ही किया गया और उन्हें पुनर्निर्मित किया गया। अजीब... – dmihailescu

1

यदि आपकी परियोजना ".NET Framework X क्लाइंट प्रोफ़ाइल" को लक्षित करती है, तो आप "System.Web" का उपयोग नहीं कर सकते हैं, लेकिन आप इसके बजाय "Uri.EscapeUriString | Uri.UnEscapeUriString" का उपयोग कर सकते हैं।

3

नेट 4.5 में आप (कट ?, 'कृपया' कटाना टिप्पणी कह सकते हैं 'का उपयोग कर सकते हैं) System.Net.WebUtility.UrlEncode विधि का उपयोग करें।

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