2012-09-22 3 views
0

실행중인 .Net 응용 프로그램, 지금까지로드 된 모든 클래스를 볼 수있는 간단한 방법이 있습니까? 이것은 대형 프로젝트에서 더 이상 사용되지 않는 클래스를 제거하는 데 도움이됩니다.어떤 클래스가 .NET에로드되었는지 확인하는 방법

나는 모든 클래스에 정적 이니셜 라이저를 넣을 수 있고 일종의 등록을 할 수 있다는 것을 알고 있지만, 지루하고 오류가 발생하기 쉽습니다. AppDomain이나 Assembly 클래스 등을 통해보다 명확한 방법으로 작업 할 수 있다면 좋을 것입니다. 감사!

답변

0

조립품이 현재 앱 도메인에 실제로로드되어 있는지 확인할 수 있습니다 (AppDomain.CurrentDomain.GetAssemblies()). 물론 이것을 실행하면 특정 시간에로드 된 어셈블리에 대한 정보 만 얻을 수 있습니다. 솔루션에서 중복 코드를 찾아서 제거하는 훨씬 좋은 방법이 있습니다. 개인적으로, 저는 ReSharper를 좋아합니다. 그것은 "코드 발견 문제"(전체 솔루션에 사용될 수 있음)라는 훌륭한 기능을 가지고있어 사용하지 않는 기호 목록을 제공 할 것입니다.

+0

ReSharper는 클래스를 참조하는 끝점 (예 : 웹 페이지 또는 RESTful API 호출)이있을 수 있으므로 더 이상 사용되지 않지만 끝점은 더 이상 사용되지 않습니다. 따라서 클래스는 컴파일시 참조되지만 실제로 사용되지는 않습니다. – nganju

0

PostSharp, Spring.Aop과 같은 애스펙트 라이브러리를 사용하여 메서드, 속성 등에 대한 모든 호출을 가로 채고 집합에 형식 이름을 추가 할 수 있습니다. 또 다른 방법은 프로파일 러를 사용하는 것입니다. 두 가지 방법 모두 불행히도 응용 프로그램을 계속 사용해야합니다 (UI가있는 데스크톱 응용 프로그램이기를 바랍니다).

그런데 CodeAnalysis를 활성화하고 성능 경고를 찾으려고 했습니까? 절대로 호출되지 않는 모든 메서드, 속성, 필드에 대한 경고가 표시됩니다.

관련 문제