Resharper- सभी अप्रयुक्त वर्गों का पता लगाएं


122

मुझे पता है कि फ़ाइल पर राइट क्लिक करके और "फाइंड यूजेज" विकल्प का चयन करके किसी भी फाइल का अप्रयुक्त संदर्भ कैसे खोजा जा सकता है। क्या कोई तरीका है जो मैं अपने प्रोजेक्ट में सभी अप्रयुक्त वर्गों या फाइलों की सूची देख या प्राप्त कर सकता हूं?


2
मैंने अतीत में इसके लिए ndepend का इस्तेमाल किया है।
सिने

जवाबों:


195

पहले "समाधान में त्रुटियों का विश्लेषण करें" को सक्षम करें (स्टेटस बार में रिचार्पर आइकन पर राइट-क्लिक करें)।

फिर समाधान नोड पर राइट-क्लिक करें और "कोड कोड ढूंढें" चुनें। "निरीक्षण परिणाम" टूल विंडो में आप "अंक प्रकार" के आधार पर समूह बना सकते हैं और सभी अप्रयुक्त वर्गों (और कई और अप्रयुक्त प्रतीकों) को प्राप्त करने के लिए "प्रकार या प्रकार के सदस्य का कभी उपयोग नहीं किया जाता है" देखें।

एक दूसरा विकल्प ("समाधान में त्रुटियों का विश्लेषण करें" सक्षम करने के बाद) किसी भी अप्रयुक्त वर्ग में जाना है, Alt + Enter मारा, "प्रकार या प्रकार के सदस्य के लिए विकल्प ... 'निरीक्षण" का चयन करें। इस प्रकार के सभी कोड मुद्दों का पता लगाएं | संपूर्ण समाधान।

निरीक्षण के परिणाम खिड़की का नमूना है


41
अप्रयुक्त वर्ग / विधियाँ "प्रकार या प्रकार के सदस्य का उपयोग कभी नहीं किया जाता है" "प्रतीक घोषणाओं में अतिरेक" के तहत। निश्चित नहीं है कि यह संस्करण परिवर्तन के कारण है, या मैं इसे अलग तरीके से देख रहा हूं।
बुलटियस

4
यह किसी भी श्रेणियों के तहत अप्रयुक्त वर्गों को वापस नहीं लाया है। विंडोज 8 पर वीएस 2017 पर वीएसआर 3 या विंडोज 7 पर वीएस2012 का उपयोग करके किसी भी श्रेणियों के तहत
सैम जोन्स

1
कम से कम ReSharper 8 में, आपको परिणाम प्राप्त करने के लिए "समाधान में त्रुटियों का विश्लेषण करने" को सक्षम करने की आवश्यकता नहीं है।
पीटर वैन जिंकेल

@SamJones: आप सही हैं .. यह Resharper 8.1 के तहत किसी भी अप्रयुक्त वर्ग को नहीं लौटाता है ...
जाहिर है

3
Resharper 10: यह रिपोर्ट अप्रयुक्त वर्गों को नहीं दिखाती है। वर्कअराउंड: कोड में कुछ अप्रयुक्त वर्ग ढूंढें, और "समाधान में समान मुद्दे खोजें" करें
altumano

17

@Ulrichc द्वारा समाधान एकदम सही लगता है और छोटे से लेकर मध्यम स्तर की परियोजनाओं के लिए ठीक काम करता है जिसमें आप किसी भी निर्भरता इंजेक्शन ढांचे जैसे कि कैसल या निनजेक्ट का उपयोग नहीं कर रहे हैं लेकिन क्या होगा यदि आप DI कंटेनर [उदाहरण के लिए कैसल] का उपयोग कर रहे हैं और आपके पास कुछ इस तरह है:

public class IoC
{
    private WindsorContainer _container;

    private IoC()
    {
         _container = new WindsorContainer();
    }

    public static void RegisterFromAssembly(Assembly assembly, string classEndsWith, LifeTime lifeTime)
    {
        var lifestyle = ConvertLifeStyleType(lifeTime);

        _container.Register(AllTypes.FromAssembly(assembly)
                  .Where(type => type.Name.EndsWith(classEndsWith))
                  .WithService.AllInterfaces()
                  .Configure(c => c.LifeStyle.Is(lifestyle))
                  .WithService.FirstInterface());
    }
}

जैसा कि आप देख सकते हैं RegisterFromAssembly विधानसभा के अंदर सभी प्रकार से गुजरता है और नेत्रहीन [विधियों पैरामीटर के आधार पर] रन-टाइम में कंटेनर में जोड़ता है।

आपको एजेंट मुल्डर प्लगइन की तरह कुछ की आवश्यकता होगी जो आपके कंटेनरों के अंदर पंजीकृत या हल किए गए प्रकारों के लिए नेविगेशन प्रदान करता है। यह फिर से नेत्रहीन [डिजाइन समय संभवतः] काम कर सकता है लेकिन आप वास्तव में सुनिश्चित नहीं होंगे जब तक कि हर बार जब आप अप्रयुक्त वर्ग को हटाते हैं तो आप अपने आवेदन के अंदर सभी परीक्षण चलाते हैं [हर संभव परत] 80% सुनिश्चित करें कि आप सुरक्षित हैं। कहानी का नैतिक: एक वर्ग Resharper के लिए अप्रयुक्त लग सकता है लेकिन जब आप निर्भरता इंजेक्शन का उपयोग करते हैं तो यह फिर से जीवित हो सकता है।


3
केवल डीआई ही नहीं, प्रतिबिंब के किसी भी उपयोग के लिए जो समाधान विफल हो सकता है।
मोहयमीन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.