Le moyen le meilleur et le plus simple d'atteindre ce que vous recherchez est probablement d'utiliser l'outil d'analyse de code intégré avec Visual Studio pour rechercher et vous diriger directement vers le code mort et les membres inutilisés.
À cet effet, j'ai créé un nouveau fichier de jeu de règles d'analyse de code (via Fichier-> Nouveau-> Fichier , en m'assurant que Général dans le volet de gauche était sélectionné et en faisant défiler vers le bas pour trouver le jeu de règles d'analyse de code , en lui donnant un nom de fichier, puis en recherchant et sélection des règles ci-dessous). Voir ci-dessous pour le contenu du fichier d'ensemble de règles que vous pouvez copier et coller dans un nouveau fichier avec l'extension .ruleset à utiliser.
Étant donné un fichier de jeu de règles, vous pouvez cliquer avec le bouton droit sur un fichier de projet dans le panneau Explorateur de solutions et sélectionner Propriétés . Dans les fenêtres des propriétés du projet, cliquez sur l' onglet Analyse du code dans le panneau de gauche, puis cliquez sur Ouvrir pour accéder à l'emplacement du fichier .ruleset. Si vous accédez aux propriétés d'un fichier de solution (par opposition à un fichier de projet), vous pouvez définir le fichier d'analyse de code pour chaque projet de la solution en un seul endroit (sous Paramètres d'analyse du code , et en utilisant le menu déroulant pour sélectionner REMARQUE: vous devez avoir préalablement parcouru le fichier de jeu de règles pour qu'il apparaisse dans la liste déroulante de cette fenêtre de propriétés).
Ensuite, vous exécutez simplement l'analyse de code sur les projets / solution (via Analyser-> Exécuter l'analyse de code sur la solution -OU- Alt + F11 ) et il reviendra sous forme d'avertissements, de toutes les méthodes non référencées ou des membres inutilisés qu'il trouve. Il trouvera même des méthodes référencées par une méthode, qui elle-même n'a aucune référence ailleurs.
Attention cependant, comme l'une des façons dont l'analyse de code pour le code mort peut vous induire en erreur, c'est si la référence est «cachée» en n'appelant jamais la méthode que via des délégués, et bien sûr, par réflexion.
Les règles pour détecter le code mort, en particulier, sont:
- Méthodes privées qui ne sont appelées à partir d'aucun autre code (CA1811)
- Variables locales inutilisées (CA1804)
- Champs privés inutilisés (CA1823)
- Paramètres inutilisés (CA1801)
- Classes internes qui ne sont instanciées à partir d'aucun autre code (CA1812).
- Code mort dans un commutateur limité OU bit à bit (C6259)
Vous trouverez ci-dessous le contenu du fichier .ruleset qui peut être obtenu en suivant les étapes ci-dessus, pour votre commodité. Vous pouvez simplement copier le XML ci-dessous, le coller dans notepad ++, enregistrer quelque part avec l'extension .ruleset , rechercher et utiliser comme expliqué ci-dessus:
<?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>