Я знаю, как найти неиспользуемые ссылки одного файла, щелкнув правой кнопкой мыши на файле и выбрав опцию "Найти использование". Есть ли способ увидеть или получить список all неиспользуемых классов или файлов в моем проекте?
Resharper- Найти все неиспользуемые классы
Ответ 1
Сначала включите "Анализ ошибок в решении" (щелкните правой кнопкой мыши значок Resharper в строке состояния).
Затем щелкните правой кнопкой мыши по решению node и выберите "Найти проблемы с кодом". В окне инструмента "Результаты проверки" вы можете группировать "Тип проблемы" и искать "Тип или тип члена никогда не используется", чтобы получить все неиспользуемые классы (и еще много неиспользуемых символов).
Вторая опция (после включения "Анализ ошибок в решении" ) - перейти к любому неиспользуемому классу, нажать Alt + Enter, выбрать "Опции для" Тип или тип члена... "проверка" | Найти все сообщения этого пользователя | Полное решение.
Ответ 2
Решение от @ulrichc отлично звучит и отлично работает для проектов с малым и средним весом, в которых вы не используете Framework Injection, например Castle или Ninject, но что, если вы используете контейнер DI [Castle, например], и у вас есть что-то вроде следующего:
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 проходит через все типы внутри сборки и слепо [на основе параметра методов] добавляет их в контейнер во время выполнения.
Вам понадобится плагин Agent Mulder, который обеспечивает навигацию для типов, зарегистрированных или разрешенных внутри ваших контейнеров. Это снова может визуально [время разработки] работать, но вы не были бы уверены, что каждый раз, когда вы удаляете неиспользуемый класс, вы запускаете все тесты внутри вашего приложения [каждый возможный уровень], чтобы быть уверенным, что вы в безопасности на 80%. Мораль истории: класс может звучать неприменимо к Resharper, но он может быть воскрешен при использовании Injection Dependency.