2012-08-27 21 views
32

मेरे नियंत्रक कोड में मैं उपयोग कर रहा हूं: Request.Url.<Something>। ReSharper सुझाव देता है कि Request.Url शून्य हो सकता है।अनुरोध कब कर सकता है। शून्य शून्य हो?

तो, जब वास्तव में Request.Url शून्य हो सकता है? मैं परीक्षण के बारे में बात नहीं कर रहा हूं, मुझे केवल एक ऐसे एप्लिकेशन के बारे में दिलचस्पी है जो लाइव/पहले से ही तैनात है।

कृपया ध्यान दें कि मुझे इस बिंदु तक Request.Url का उपयोग करने से NullReferenceException एस प्राप्त नहीं हुआ है।

उत्तर

40

HttpRequestBase एक वर्ग है और रीशेर्पर इसे एक वास्तविक वर्ग के रूप में देखता है, और कुछ नहीं (सैद्धांतिक रूप से, यह null हो सकता है)। तो यह इस विशिष्ट वर्ग के उपयोग का विश्लेषण नहीं करता है।

हकीकत में, मुझे लगता है कि Request.Urlकभी नहीं null हो देगा, इसलिए इस मामले में ReSharper ध्यान न दें।

+4

अच्छा चिल्लाओ, मुझे लगता है कि कभी-कभी रिशेर्पर खतरनाक चीज हो सकता है लेकिन इसके बिना मैं शायद इसे पढ़ नहीं पाया होता। चीयर्स गायस। पीएस गले और रिशेर्पर के लिए चुंबन :) – Adam

13

असल में Request.Url का उपयोग करते समय हो सकता है। जब आप अपना खुद का बेस कंट्रोलर क्लास बनाते हैं जिससे अन्य वर्ग प्राप्त होते हैं, Request शून्य हो जाएगा। या एएसपी.नेट एमवीसी के साथ एक्शनमेलर का उपयोग करते समय आपको एक नियंत्रक वर्ग बनाना होगा जो MailerBase से प्राप्त होता है (जो इस नियंत्रक के अंदर Request भी शून्य हो जाता है)।

वैकल्पिक: HttpContext.Current.Request का उपयोग करें या जांचें कि Request शून्य है।

+3

सिस्टम.Web.HttpContext.Current.Request :) – lsp

+1

FYI: Request.Url शून्य नहीं है यदि आपका बेस नियंत्रक नियंत्रक से प्राप्त होता है, यानी बेसकंट्रोलर: नियंत्रक –

+1

बस ध्यान रखें कि 'सिस्टम का उपयोग करना। Web.HttpContext' परीक्षण के साथ हस्तक्षेप कर सकता है जिसे 'HttpContext' का नकल करने की आवश्यकता है (क्योंकि यूनिट परीक्षण के दौरान कोई वास्तविक आईआईएस अनुरोध नहीं होता है)। [HttpContextBase बनाम HttpContext] देखें (http://www.splinter.com.au/httpcontext-vs-httpcontextbase-vs-httpcontext/) और [HttpContextBase ऑब्जेक्ट को HttpContext.Current से कैसे प्राप्त करें] (http: // thecodersperspective। blogspot.com/2011/07/how-to-get-httpcontextbase-object-from.html) – ErikE

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