পুনঃ ভাগ করুন- সমস্ত অব্যবহৃত ক্লাস সন্ধান করুন


122

আমি জানি যে কীভাবে একটি একক ফাইলের অব্যবহৃত রেফারেন্সগুলি ফাইলে ডান ক্লিক করে এবং "ব্যবহারের সন্ধান করুন" বিকল্পটি নির্বাচন করে খুঁজে পাবেন। আমার প্রকল্পের সমস্ত অব্যবহৃত শ্রেণি বা ফাইলগুলির তালিকা দেখতে বা পাওয়ার কোনও উপায় আছে কি ?


2
আমি এর জন্য অতীতে nd depend ব্যবহার করেছি।
সিনে

উত্তর:


195

প্রথমে "সমাধানে ত্রুটিগুলি বিশ্লেষণ করুন" সক্ষম করুন (স্ট্যাটাস বারে পুনরায় ভাগ করুন আইকনটিতে ডান ক্লিক করুন)।

তারপরে সমাধান নোডটিতে ডান ক্লিক করুন এবং "কোডের সমস্যাগুলি অনুসন্ধান করুন" নির্বাচন করুন। "পরিদর্শন ফলাফল" সরঞ্জাম উইন্ডোতে আপনি "ইস্যু টাইপ" দ্বারা দলবদ্ধ করতে পারেন এবং সমস্ত অব্যবহৃত শ্রেণি (এবং আরও অনেক অব্যবহৃত প্রতীক) পেতে "টাইপ বা টাইপ সদস্য কখনও ব্যবহৃত হয় না" সন্ধান করুন।

একটি দ্বিতীয় বিকল্প ("সমাধানে ত্রুটিগুলি বিশ্লেষণ" সক্ষম করার পরে) কোনও অব্যবহৃত শ্রেণিতে যেতে হবে, Alt + এন্টার চাপুন, "বিকল্পের জন্য টাইপ করুন অথবা সদস্য টাইপ করুন ... 'পরিদর্শন" | এই ধরণের সকল কোড ইস্যু সন্ধান করুন সম্পূর্ণ সমাধান।

পরিদর্শন ফলাফল উইন্ডো নমুনা


41
"সিম্বল ডিক্লেয়ারেশনে রিডানড্যান্সেসি" এর আওতায় অবহেলিত ক্লাস / পদ্ধতিগুলি "টাইপ বা টাইপ সদস্য কখনও ব্যবহার করা হয় না"। এটি সংস্করণ পরিবর্তনের কারণে হয়েছে কিনা তা নিশ্চিত নয় বা আমি এটি অন্যভাবে দেখছি।
বুলিয়ুল

4
এই উইন্ডোজ 7 উইন্ডোজ 8 বা VS2012 উপর VS2013 উপর Resharper 7.1 ব্যবহার করে যে কোনও বিভাগ অধীনে যে কোন অব্যবহৃত ক্লাস ফিরে আসেন নি
স্যাম জোন্স

1
কমপক্ষে রিসার্পার 8 এ, আপনাকে ফলাফল পেতে "সমাধানের ত্রুটি বিশ্লেষণ" সক্ষম করতে হবে না।
পিটার ভ্যান জিনকেল

@ সামজোনস: আপনি ঠিক বলেছেন .. এটি রিসার্পার ৮.১ এর অধীনে কোনও অব্যবহৃত ক্লাস ফেরত দেয় না ...
সত্যই

3
পুনঃভাগ 10: এই প্রতিবেদনটি অব্যবহৃত ক্লাসগুলি দেখায় না। কর্মসূচী: কোডটিতে কিছু অব্যবহৃত শ্রেণীর সন্ধান করুন এবং "সমাধানে অনুরূপ সমস্যাগুলি সন্ধান করুন"
ইলিউমান

17

@Ulrichc এর সমাধান নিখুঁত বলে মনে হচ্ছে এবং ছোট থেকে মাঝারি ওজনের প্রকল্পগুলির জন্য সূক্ষ্ম কাজ করে যাতে আপনি কোনও ব্যবহার করছেন না ডিপেন্ডেন্সি ইনজেকশন কাঠামো যেমন ক্যাসল বা নিনজেক্ট ব্যবহার করছেন না তবে আপনি ডিআই কনটেইনার ব্যবহার করছেন [উদাহরণস্বরূপ ক্যাসল] এবং আপনার নীচের মতো কিছু রয়েছে:

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());
    }
}

আপনি দেখতে পাচ্ছেন যে রেজিস্টারফ্র্যামঅ্যাস্প্যাসবিলিটি সমস্ত ধরণের সমাবেশের ভিতরে যায় এবং অন্ধভাবে [পদ্ধতিগুলির প্যারামিটারের ভিত্তিতে] রান-টাইমে ধারকটিতে তাদের যুক্ত করে।

আপনার এজেন্ট মুলদার প্লাগইনের মতো কিছু দরকার যা আপনার ধারকগুলির মধ্যে নিবন্ধিত বা সমাধান হওয়া ধরণের জন্য নেভিগেশন সরবরাহ করে। এটি আবার দৃশ্যত [নকশার সময় সম্ভবত] কাজ করতে পারে তবে আপনি যতক্ষণ অব্যক্ত ক্লাসটি অপসারণ না করেন আপনি যতক্ষণ না আবেদন প্রয়োগের ভিতরে সমস্ত পরীক্ষা চালান [প্রতিটি সম্ভাব্য স্তর] নিশ্চিত হন যে আপনি 80% নিরাপদ রয়েছেন are গল্পটির নৈতিকতা: কোনও শ্রেণি পুনঃভাগে অনাবৃত লাগতে পারে তবে আপনি যখন নির্ভরতা ইঞ্জেকশন ব্যবহার করেন তখন পুনরুত্থিত হতে পারে।


3
শুধু ডিআইই নয়, প্রতিবিম্বের যে কোনও ব্যবহারের জন্য সমাধানটি ব্যর্থ হতে পারে।
মোহাইমিন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.