Prawdopodobnie najlepszym i najłatwiejszym sposobem osiągnięcia tego, czego szukasz, jest użycie wbudowanego narzędzia do analizy kodu w programie Visual Studio, aby znaleźć i zabrać Cię bezpośrednio do martwego kodu i nieużywanych elementów członkowskich.
W tym celu utworzyłem nowy plik zestawu reguł analizy kodu (poprzez Plik-> Nowy-> Plik , upewniając się, że wybrano Ogólne w lewym panelu i przewijając w dół, aby znaleźć Zestaw reguł analizy kodu , nadając mu nazwę pliku, a następnie wyszukując i wybierając poniższe zasady). Zobacz poniżej zawartość pliku zestawu reguł, który możesz skopiować i wkleić do nowego pliku z rozszerzeniem .ruleset do użycia.
Mając plik zestawu reguł, można kliknąć prawym przyciskiem myszy plik projektu w panelu Eksplorator rozwiązań i wybrać Właściwości . W oknach właściwości projektu kliknij kartę Analiza kodu w lewym panelu, a następnie kliknij Otwórz, aby przejść do lokalizacji pliku .ruleset. Jeśli przejdziesz do właściwości pliku rozwiązania (w przeciwieństwie do pliku projektu), możesz ustawić plik analizy kodu dla każdego projektu w rozwiązaniu w jednym miejscu (w obszarze Ustawienia analizy kodu i korzystając z menu rozwijanego, aby wybrać UWAGA: Musisz jednak wcześniej przejrzeć plik zestawu reguł, aby pojawił się on na liście rozwijanej w tym oknie właściwości).
Następnie wystarczy uruchomić analizę kodu w projekcie / rozwiązaniu (za pomocą opcji Analiza -> Uruchom analizę kodu na rozwiązaniu -LUB- Alt + F11 ) i wróci ona jako ostrzeżenia, wszelkie metody bez odwołań lub niewykorzystane elementy członkowskie, które znajdzie. Znajdzie nawet metody, do których odwołuje się metoda, która sama nie ma żadnych odniesień w innym miejscu.
Bądź jednak ostrożny, ponieważ jednym ze sposobów, w jaki analiza kodu pod kątem martwego kodu może kierować Cię w niewłaściwy sposób, jest to, że odniesienie jest „ukryte” przez wywołanie metody tylko przez delegatów i oczywiście przez odbicie.
W szczególności zasady wykrywania martwego kodu są następujące:
- Metody prywatne, które nie są wywoływane z żadnego innego kodu (CA1811)
- Nieużywane zmienne lokalne (CA1804)
- Nieużywane pola prywatne (CA1823)
- Nieużywane parametry (CA1801)
- Klasy wewnętrzne, które nie są tworzone z żadnego innego kodu (CA1812).
- Martwy kod w przełączniku bitowym lub ograniczonym (C6259)
Poniżej znajduje się zawartość pliku .ruleset, który można uzyskać, wykonując powyższe kroki, aby zachować zgodność. Możesz po prostu skopiować poniższy XML, wkleić go do Notatnika ++, zapisać gdzieś z rozszerzeniem .ruleset , przeglądać i używać jak wyjaśniono powyżej:
<?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>