[c#] Resharper- 사용하지 않은 모든 클래스 찾기

파일을 마우스 오른쪽 버튼으로 클릭하고 “사용 찾기”옵션을 선택하여 단일 파일의 사용되지 않은 참조를 찾는 방법을 알고 있습니다. 내 프로젝트에서 사용하지 않는 모든 클래스 또는 파일 목록을 보거나 가져올 수있는 방법이 있습니까?



답변

먼저 “솔루션에서 오류 분석”을 활성화합니다 (상태 표시 줄에서 Resharper 아이콘을 마우스 오른쪽 버튼으로 클릭).

그런 다음 솔루션 노드를 마우스 오른쪽 단추로 클릭하고 “코드 문제 찾기”를 선택합니다. “검사 결과”도구 창에서 “문제 유형”별로 그룹화하고 “유형 또는 유형 멤버가 사용되지 않음”을 찾아 사용하지 않는 모든 클래스 (및 더 많은 사용되지 않은 기호)를 가져올 수 있습니다.

두 번째 옵션 ( “솔루션에서 오류 분석”을 활성화 한 후)은 사용하지 않는 클래스로 이동하여 Alt + Enter를 누르고 ” ‘유형 또는 유형 멤버 …’검사 옵션”을 선택하는 것입니다. 이 유형의 모든 코드 문제 찾기 | 전체 솔루션.

검사 결과 창 샘플


답변

@ulrichc의 솔루션은 완벽하게 들리며 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에 익숙하지 않은 것처럼 들릴 수 있지만 Dependency Injection을 사용하면 부활 할 수 있습니다.


답변