2011-12-30 34 views
5

Estoy tratando de averiguar todas las clases y ensamblajes que utilizan/hacen referencia a una clase en particular. ¿Hay alguna forma de averiguar a través de la programación en C#?Encontrar referencia a la clase y los métodos

Por ejemplo, si se llama Class1/referenciado por Class2 en Assembly1, Class3 en Assembly2, quiero encontrar Class2 & Class3 usando programación C#.

¿Hay alguien que pueda ayudarme? ¿Hay alguna herramienta que pueda ayudar en esto? Quiero escribir un pequeño programa para leer la clase de un ensamblaje y encontrar las clases donde se hace referencia/uso de esa clase en particular.

Mi pregunta en resumen: ¿Cómo encontrar una clase o método no utilizado en mi base de código escribiendo un programa C# como parte de la actividad de limpieza del código?

+3

¿Está en tiempo de compilación o en tiempo de ejecución? – oleksii

+0

"Esta etiqueta es para preguntas de programación en lenguaje ensamblador no específicas para ningún procesador en particular". - utilice la etiqueta [.net-assembly] en su lugar –

+0

Si en tiempo de ejecución, es posible a través de la reflexión, pero tendrá que enumerar a través de todos los ensamblados, todas sus clases, todos los métodos, propiedades y constructores y sus parámetros, etc. clases y luego todavía no captarás las referencias que solo se usan dentro del cuerpo del código de los métodos, etc. – Casperah

Respuesta

1

Si está buscando una herramienta para hacer esto, puede usar NDepend que puede hacer lo que está describiendo y también mucho más.

O, si usted está utilizando ReSharper: Haga clic en "encontrar usos" ... (no es útil para la búsqueda de código no utilizado de hecho)

+0

Hable de consumir mucho tiempo para hacer eso en cada clase/método, ya que quiere encontrar clases/métodos no utilizados para el código limpio arriba. – jgauffin

+1

Luego use NDepender. Es la herramienta perfecta para hacer esto. "Buscar código muerto" es una característica principal. –

+0

Gracias a noah por la ayuda rápida. – nRk

Cuestiones relacionadas