Probabilmente il modo migliore e più semplice per ottenere ciò che cerchi è utilizzare lo strumento di analisi del codice integrato con Visual Studio per trovare e portarti direttamente al codice morto e ai membri inutilizzati.
A tal fine, ho creato un nuovo file di set di regole per l'analisi del codice (tramite File-> Nuovo-> File , assicurandomi che Generale nel riquadro a sinistra fosse selezionato e scorrendo verso il basso per trovare il set di regole di analisi del codice , assegnandogli un nome file, quindi cercando e selezionando le seguenti regole). Vedi sotto per il contenuto del file del set di regole che puoi copiare e incollalo in un nuovo file con l'estensione .ruleset da usare.
Dato un file di set di regole, è possibile fare clic con il pulsante destro del mouse su un file di progetto nel pannello Esplora soluzioni e selezionare Proprietà . Nella finestra delle proprietà del progetto, fai clic sulla scheda Analisi del codice nel pannello di sinistra, quindi fai clic su Apri per accedere al percorso del file .ruleset. Se vai alle proprietà di un file di soluzione (al contrario di un file di progetto), puoi impostare il file di analisi del codice per ciascun progetto nella soluzione in un unico posto (in Impostazioni analisi codice e utilizzando il menu a discesa lì per selezionare il file del set di regole NOTA: è necessario aver precedentemente consultato il file del set di regole per visualizzarlo nel menu a discesa in questa finestra delle proprietà).
Quindi esegui semplicemente l'analisi del codice sui progetti / sulla soluzione (tramite Analizza-> Esegui analisi del codice sulla soluzione -OPP- Alt + F11 ) e tornerà come avvertenze, eventuali metodi non referenziati o membri inutilizzati che trova. Troverà anche metodi a cui fa riferimento un metodo, che a sua volta non ha riferimenti altrove.
Fai attenzione, tuttavia, poiché uno dei modi in cui l'analisi del codice per il codice morto può indirizzarti in modo errato, è se il riferimento è 'nascosto' chiamando sempre e solo il metodo tramite delegati e, naturalmente, riflessione.
Le regole per rilevare il codice morto, in particolare, sono:
- Metodi privati che non sono chiamati da nessun altro codice (CA1811)
- Variabili locali non utilizzate (CA1804)
- Campi privati non utilizzati (CA1823)
- Parametri non utilizzati (CA1801)
- Classi interne che non sono istanziate da nessun altro codice (CA1812).
- Codice guasto nello switch limitato OR bit a bit (C6259)
Di seguito è riportato il contenuto del file .ruleset che può essere ottenuto seguendo i passaggi precedenti, per la tua convinenza. Puoi semplicemente copiare l'XML seguente, incollarlo in notepad ++, salvare da qualche parte con l'estensione .ruleset , cercare e utilizzare come spiegato sopra:
<?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>