Probablemente, la mejor y más fácil manera de lograr lo que busca es usar la herramienta de análisis de código integrada con Visual Studio para buscar y llevarlo directamente a código muerto y miembros no utilizados.
Para este efecto, creé un nuevo archivo de conjunto de reglas de análisis de código (Via File-> New-> File , asegurándome de que General en el panel izquierdo estaba seleccionado y desplazándome hacia abajo para encontrar Code Analysis Rule Set , dándole un nombre de archivo, luego buscando y seleccionando las siguientes reglas). Consulte a continuación los contenidos del archivo de conjunto de reglas que puede copiar y pegar en un nuevo archivo con la extensión .ruleset para usar.
Dado un archivo de conjunto de reglas, uno puede hacer clic derecho en un archivo de proyecto en el panel Explorador de soluciones y seleccionar Propiedades . En las ventanas de propiedades del proyecto, haga clic en la pestaña Análisis de código en el panel izquierdo y luego haga clic en Abrir para buscar la ubicación del archivo .ruleset. Si va a las propiedades de un archivo de solución (en lugar de un archivo de proyecto), puede establecer el archivo de análisis de código para cada proyecto en la solución en un lugar (en Configuración de análisis de código , y usando el menú desplegable para seleccionar NOTA: sin embargo, debe haber examinado previamente el archivo de conjunto de reglas para que aparezca en el menú desplegable de esta ventana de propiedades.
Luego, simplemente ejecute el análisis de código en los proyectos / solución (Vía Analizar-> Ejecutar análisis de código en solución -O BIEN- Alt + F11 ) y volverá como advertencias, cualquier método sin referencia o miembros no utilizados que encuentre. Incluso encontrará métodos a los que hace referencia un método, que en sí mismo no tiene referencias en otro lugar.
Sin embargo, tenga cuidado, ya que una de las formas en que el análisis de código para el código muerto puede conducirlo a un error, es si la referencia está 'oculta' al solo llamar al método a través de delegados y, por supuesto, de reflexión.
Las reglas para detectar código muerto, específicamente, son:
- Métodos privados que no se invocan desde ningún otro código (CA1811)
- Variables locales no utilizadas (CA1804)
- Campos privados no utilizados (CA1823)
- Parámetros no utilizados (CA1801)
- Clases internas que no se instancian desde ningún otro código (CA1812).
- Código muerto en el interruptor limitado OR-bit (C6259)
A continuación se muestra el contenido del archivo .ruleset que se puede obtener siguiendo los pasos anteriores, para su conveniencia. Simplemente puede copiar el siguiente XML, pegarlo en el bloc de notas ++, guardarlo en algún lugar con la extensión .ruleset , buscar y usar como se explicó anteriormente:
<?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>