वहाँ Resharper 4 में एक सेटिंग (या यहां तक कि दृश्य स्टूडियो में ही ...) कि एक चेतावनी मजबूर करता है अगर मैं एक using
ब्लॉक में कोड रैप करने के लिए भूल जाते हैं, या एक finally
ब्लॉक में उचित निपटान कॉल ommit है?क्या रेस्पर्पर को चेतावनी देने के लिए सेट किया जा सकता है अगर IDISposable सही ढंग से संभाला नहीं गया है?
उत्तर
सही स्वचालित निपटान विश्लेषण एक वैश्विक तरह से DFA (डेटा प्रवाह विश्लेषण) की आवश्यकता है। यह असंभव है कि आप एक आईडीस्पोजेबल ऑब्जेक्ट बनाते हैं और उस पर कोई विधि नहीं कहते हैं और इसे तर्क के रूप में पास नहीं करते हैं। डिस्पोजेबल वस्तु (अपने सदस्यों को बुला, जब "इस" परोक्ष पारित हो जाता है सहित) अन्य तरीकों में भेजा जाता है, तो यह टूल का विश्लेषण करना चाहिए अगर निपटान के भीतर बुलाया नहीं है, या उस वस्तु बाद में निपटान के लिए कहीं न कहीं संग्रहीत नहीं है।
यह कहा गया है कि अगर डिस्पोजेबल ऑब्जेक्ट वास्तव में "उपयोग" निर्माण के साथ या किसी अन्य तरीके से निपटाया गया है तो जांच के निष्पक्ष कार्यान्वयन से बहुत अधिक झूठी सकारात्मक उत्पन्न होगी, और विश्लेषण बेकार हो जाएगा।
आप आर # में एक छोटा ऐड-इन डिज़ाइन कर सकते हैं जिसे आप कोड संपादक के अंदर चला सकते हैं जो कोड स्कैन करता है और कोड विश्लेषण को अपडेट करता है ताकि यह दर्शाया जा सके कि आप उस ऑब्जेक्ट को खो चुके हैं जिसकी संरचना आपने अभी वर्णित की है।
अगर आपको लगता है कि मार्ग जाने का निर्णय मैं आर # प्लगइन वास्तुकला पर गौर चाहते हैं।
DEBUG
में Dispose()
के लिए परीक्षण के लिए कुछ ट्रिक के लिए this blog post देखें। असल में, एक डेबग-केवल विनाशक लिखें जो दावा करता है कि आप का निपटारा किया गया था।
आप इस के लिए FxCop को देखने के लिए चाहते हो सकता है: http://msdn.microsoft.com/en-us/library/ms182328(VS.80).aspx
इसका एक दया आर # इसे संभाल नहीं करता है, भले ही सिर्फ अपनी कक्षा में खेतों और/या चर के लिए एक चेतावनी आप पैदा करते हैं।
वर्तमान तरीकों से असंतोष, मैंने अपना खुद का निर्माण किया: EyeDisposable। यह एक आईएल उपकरण है इसलिए इसे स्थिर विश्लेषण द्वारा पकड़े गए कई रिसावों को पकड़ना चाहिए। यह अभी भी अपने शुरुआती चरण में है, इनपूट का स्वागत है।
- 1. NSURLIsExcludedFromBackupKey को सही ढंग से सेट नहीं किया जा सकता
- 2. MSBuildExtensionsPath32 सही ढंग से सेट नहीं है?
- 3. डेल्फी वैरिएबल को चेतावनी प्रारंभ नहीं किया जा सकता है
- 4. "फ़ाइल को पहले से संकलित नहीं किया गया है, और अनुरोध नहीं किया जा सकता है"
- 5. डेटाटेबल्स में चेतावनी को सही ढंग से दबा रहा है?
- 6. वसंत पहलू जार सही ढंग से कॉन्फ़िगर नहीं किया गया
- 7. चेतावनी: FacesMessage (ओं) को लगाया गया है, लेकिन प्रदर्शित नहीं किया जा सकता है
- 8. Persistence.xml सही ढंग से कॉन्फ़िगर नहीं किया गया
- 9. क्या मैं सही ढंग से IDISposable लागू कर रहा हूँ?
- 10. जावा डाटाबेस स्थान सेट नहीं है सही ढंग से
- 11. क्या WPF में चयन चेंज किया गया ईवेंट केवल उपयोगकर्ता इंटरैक्शन के लिए संभाला जा सकता है?
- 12. जावा डीबी स्थान सही ढंग से सेट नहीं है - netbeans
- 13. यूआरएल पुनः लिखने के साथ यूआरएल में बैकस्लैश सही ढंग से एन्कोड किया जा सकता है?
- 14. क्या इकाई परीक्षणों को चपल विकास के साथ प्रभावी ढंग से कार्यान्वित किया जा सकता है?
- 15. माइमेमेस में न्यूलाइन कैरेक्टर का सही ढंग से व्याख्या नहीं किया गया है?
- 16. साइविन के साथ मेवेन - त्रुटि: JAVA_HOME सही ढंग से परिभाषित नहीं किया गया है
- 17. क्या हेरोोकू को सही सीमलेस परिनियोजन करने के लिए कॉन्फ़िगर किया जा सकता है?
- 18. एकीकरण परीक्षण - क्या यह सही किया जा सकता है?
- 19. रेल JSON अनुरोध पोस्ट पैरामीटर में सही ढंग से पार्स नहीं किया गया है
- 20. ऑब्जेक्ट.डेफिनप्रॉपर्टीज के माध्यम से जोड़े गए इंस्टेंस सदस्यों को सही ढंग से कैसे दस्तावेज़ित किया जा सकता है?
- 21. यह निर्धारित करने के लिए कि क्या .NET अपवाद संभाला जा रहा है या नहीं?
- 22. के लिए IDisposable क्या है?
- 23. क्या जेएफआरएएम को सामने लाया जा सकता है लेकिन ध्यान केंद्रित नहीं किया जा सकता है?
- 24. DLLImport Int ** - यह कैसे किया जा सकता है अगर यह किया जा सकता है
- 25. थ्रेड को IDISposable लागू क्यों नहीं किया जाता है?
- 26. क्या किसी संख्या का उपयोग MySQL तालिका कॉलम नाम देने के लिए किया जा सकता है?
- 27. 'SqlStudio प्रोफ़ाइल पैकेज' पैकेज लोड नहीं किया सही ढंग से
- 28. नहीं किया जा रहा है ReceiveMemory चेतावनी पृष्ठभूमि में ऐप
- 29. कस्टम कॉलऑट ios6 में सही ढंग से प्रदर्शित नहीं किया गया है?
- 30. कुकीज़ आईई में सेट नहीं किया जा सकता है?
सुनिश्चित नहीं हैं कि तुम क्यों नीचे इल्या मतदान हो गया, किसी ने आर # और जिस तरह से यह आर # –
मुझे पता नहीं, मुझे मिल गया है के बारे में एक सवाल पर टिप्पणी करने से काम करता है में जानकार के लिए समझ में आता है, भी एक और ReSharper संबंधित सवाल पर मतदान किया । ऐसा लगता है कि कोई मुझे व्यक्तिगत रूप से पसंद नहीं करता है। या ReSharper :) –
भी इसे प्यार के लिए अच्छी तरह से मुझे नफरत है, और यह StackOverflow पर उत्पाद पोस्टिंग से संबंधित लोगों के लिए बहुत अच्छा है। चीयर्स! –