아마도 당신이 겪고있는 것을 달성하는 가장 쉽고 쉬운 방법은 Visual Studio와 함께 제공되는 코드 분석 도구를 사용하여 죽은 코드와 사용하지 않는 멤버를 직접 찾아가는 것입니다.
이를 위해 새 코드 분석 규칙 세트 파일 (Via File-> New-> File )을 작성 하고 왼쪽 분할 창의 일반 이 선택 되어 있는지 아래로 스크롤하여 Code Analysis Rule Set 를 찾아 파일 이름을 지정한 다음 아래 규칙 선택). 복사 할 수있는 규칙 세트 파일의 내용은 아래를 참조하여 확장명이 .ruleset 인 새 파일에 붙여 넣어 사용하십시오.
규칙 세트 파일이 제공되면 솔루션 탐색기 패널 에서 프로젝트 파일을 마우스 오른쪽 단추로 클릭 하고 특성을 선택할 수 있습니다. 프로젝트 특성 창 에서 왼쪽 패널 의 코드 분석 탭을 클릭 한 후 열기 를 클릭하여 .ruleset 파일의 위치를 찾으십시오. 솔루션 파일의 속성으로 이동하면 (프로젝트 파일이 아닌) 솔루션의 각 프로젝트에 대한 코드 분석 파일을 한 곳에서 ( 코드 분석 설정 아래) 드롭 다운을 사용하여 선택할 수 있습니다. 참고 : 그러나이 속성 창의 드롭 다운에 규칙 세트 파일이 표시 되려면 이전에 규칙 세트 파일을 찾아 봤어야합니다.
그런 다음 간단히 프로젝트 / 솔루션에서 코드 분석을 실행하고 (Via Analyze-> 솔루션에서 코드 분석 실행 -또는 Alt + F11 ), 경고, 참조되지 않은 메소드 또는 사용하지 않는 멤버로 돌아갑니다. 심지어 다른 곳에서는 참조가없는 메소드가 참조하는 메소드를 찾을 수도 있습니다.
그러나 데드 코드에 대한 코드 분석이 잘못을 저지를 수있는 방법 중 하나는 델리게이트를 통해 메소드를 호출하고 리플렉션을 통해 참조를 '숨겨'내는 것입니다.
데드 코드를 감지하는 규칙은 구체적으로 다음과 같습니다.
- 다른 코드에서 호출되지 않은 개인 메소드 (CA1811)
- 사용하지 않은 지역 변수 (CA1804)
- 사용하지 않은 개인 필드 (CA1823)
- 사용하지 않은 매개 변수 (CA1801)
- 다른 코드에서 인스턴스화되지 않은 내부 클래스 (CA1812)
- 비트 OR 제한 스위치의 데드 코드 (C6259)
아래는 위의 단계를 수행하여 확인할 수있는 .ruleset 파일의 내용입니다. 아래 XML을 복사하여 notepad ++에 붙여 넣고 확장자가 .ruleset 인 어딘가에 저장 하고 위의 설명대로 찾아 사용하십시오.
<?xml version="1.0" encoding="utf-8"?>
<RuleSet Name="Dead Code Rules" Description=" " ToolsVersion="12.0">
<Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
<Rule Id="CA1801" Action="Warning" />
<Rule Id="CA1804" Action="Warning" />
<Rule Id="CA1811" Action="Warning" />
<Rule Id="CA1812" Action="Warning" />
<Rule Id="CA1823" Action="Warning" />
</Rules>
<Rules AnalyzerId="Microsoft.Analyzers.NativeCodeAnalysis" RuleNamespace="Microsoft.Rules.Native">
<Rule Id="C6259" Action="Warning" />
</Rules>
</RuleSet>