2009-07-27 15 views
13

शीर्षक इसे सभी शामिल करता है। मुझे कक्षाएं चाहिए जो एक विशिष्ट रंग में दिखाने के लिए IDISposable लागू करें ताकि मैं जान सकूं कि मुझे उन्हें एक ब्लॉक में लपेटना चाहिए या नहीं। क्या कोई सेटिंग या प्रक्रिया है जिसके द्वारा आप आईडीई बढ़ा सकते हैं?मैं विजुअल स्टूडियो आईडीई में रंगीन सभी आईडीस्पोजेबल कक्षाओं को अलग-अलग कैसे बना सकता हूं?

उत्तर

3

यह निश्चित रूप से ऐसा करना संभव है हालांकि यह सेटिंग को बदलने के समान आसान नहीं है। इसे पूरा करने के लिए आपको एक विजुअल स्टूडियो एडिन लिखना होगा।

प्रारंभ करने के लिए http://msdn.microsoft.com/en-us/vsx/bb980955.aspx पर जाएं। जैसा कि अन्य बताएंगे। यह ह्दय के मंद होने के लिए नहीं है।

यह लिंक है जिसे आप की ओर इंगित कर सकते हैं कि आप क्या देख रहे हैं के लिए है: http://msdn.microsoft.com/en-us/library/bb166778.aspx

+0

अच्छे अंक। यहां एक और अच्छा लिंक है http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.textmanager.interop.ivshicoloritem.aspx –

+0

मैं एटीएल COM ऑब्जेक्ट्स प्रोग्राम करता था। मैं बेहोशी नहीं कर रहा हूँ। – quillbreaker

1

आप नहीं कर सकते। इसके लिए भाषा सेवा समर्थन की आवश्यकता होगी और न तो सी # या वीबी.Net इस कार्यक्षमता प्रदान करेगा।

शायद किसी शब्द का बहुत मजबूत नहीं हो सकता है। यह ऐड-इन के साथ ऐसा करना संभव है जो कोड का गहरा निरीक्षण करता है और पदानुक्रमों को आंकड़े करता है। हालांकि यह एक बहुत ही मामूली काम है।

0

ज़रूर, वहाँ उपकरण के एक बड़े सेट वी.एस. एक्सटेंशन का निर्माण करने, see Visual Studio 2008 SDK 1.1 लेकिन समय में इस तरह के एक ऐड-इन बनाने के लिए आवश्यक होगा अधिक समय की आवश्यकता है कि आप घटकों को ब्राउज़ करके खर्च करेंगे और यह निर्धारित कर रहे हैं कि वे डिस्पोजेबल हैं या नहीं

0

मुझे यकीन नहीं है, अगर FXCop या StyleCop पहले से ही ऐसा कर सकता है। लेकिन फिर, यह एक संकलन सुझाव/चेतावनी होगी।

रिशेर्पर इसका सुझाव देता है, मुझे लगता है।

0

सड़क पर शब्द इस प्रकार की बात be much easier in VS.NET 2010 होगी। संपादक को डब्ल्यूपीएफ में लिखा जा रहा है।

0

शायद मैं ऐसा करने के लिए एक बुरा व्यक्ति हूँ, लेकिन मैं कोड के इस टुकड़े हाल ही में उपयोग कर रहे हैं:/विस्तार से मुक्त

public static void BulkDispose(object[] objects) 
{ 
    foreach (object o in objects) 
    { 
    if (o != null) 
    { 
     if (o is IDisposable) 
     { 
     IDisposable disposable = o as IDisposable; 
     disposable.Dispose(); 
     } 
    } 
    } 
} 
+0

अपवादों को फेंकने का निपटान करने के लिए असामान्य नहीं है ("पहले से ही डिस्पोजेड"), ताकि आप प्रत्येक को एक कोशिश/पकड़ में लपेटकर कॉल करना चाहें। –

+0

कई कॉलों के कारण shoud * कभी नहीं फेंक दें। यदि ऐसा होता है, तो प्रश्न में घटक IDISposable अनुबंध का पालन नहीं करता है। टिप्पणियों के तहत https://msdn.microsoft.com/en-us/library/system.idisposable.dispose.aspx देखें: "यदि ऑब्जेक्ट विधि को कई बार कहा जाता है तो ऑब्जेक्ट को अपवाद नहीं फेंकना चाहिए।" – bernhof

7

मुझे लगता है यह आसान हो जाएगा एक बार रोसलिन है, लेकिन इसके यह वर्तमान में आसान नहीं है क्योंकि आप कोड को आसानी से एक्सटेंशन से सी # तक नहीं पहुंच सकते हैं।

Resharper में यह आसान है, हालांकि! मेरा उदाहरण ReSharper 9.0 में परीक्षण किया गया था। अफसोस की बात है, यह आपको देने का कोई आसान तरीका नहीं है।

  • Resharper -> विकल्प -> कोड निरीक्षण -> कस्टम पैटर्न -> जोड़ें, संवाद popsup
  • करें सी # (ऊपरी बाएँ)
  • का चयन करें "खोज" (ऊपरी दाएं)
  • प्रतिमान जोड़ें की new $disp$($args$)
  • पैटर्न गंभीरता: सुझाव के रूप में दिखाएँ
  • विवरण: डिस्पोजेबल निर्माण
  • प्रकार के "प्लेसहोल्डर जोड़ें": प्रकार, नाम: disp, टाइप: सिस्टम।IDisposable
  • प्रकार के "प्लेसहोल्डर जोड़ें": तर्क, नाम: args

सहेजें और अब आप एक "सुझाव" मिलेगा जब भी कोई नया डिस्पोजेबल निर्माण किया जा रहा है।

पैटर्न $disp$ $var$ = $exp$; जोड़ना सहायक भी हो सकता है। एक्सप के बराबर सभी चीजों को अभिव्यक्ति के रूप में परिभाषित किया जाता है।

enter image description here

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