En Visual Studio, puedo hacer clic con el botón derecho en una clase o método y elegir "Buscar usos". Eso me da una lista de lugares en mi solución donde se usa ese fragmento de código. ¿Cómo puedo hacer lo mismo desde mi código?¿Cómo usar C# para encontrar usos de una clase o método?
Respuesta
Necesitará analizar su código para hacer esto. No creo que puedas hacerlo con reflexión. MS ha estado trabajando en un proyecto llamado Roslyn. Esto es una especie de API para el compilador .NET. Debe proporcionarle lo que necesita. Consulte la publicación this para obtener detalles del proyecto Roslyn.
Cita en el mensaje:
Esto abre nuevas oportunidades para los extensores de VS para escribir potentes refactorizaciones y herramientas de análisis del lenguaje, así como permitir que cualquiera pueda incorporar nuestros programas de análisis, motores semánticos, generadores de código y secuencias de comandos en sus propias aplicaciones.
This post demuestra que se trabaja con símbolos.
This post responde a la pregunta de obtener todas las referencias.
Para ser sincero, nunca lo hice antes, ya que nunca necesité algo. Para acceder al tipo de información necesita tener acceso a Token Tree
del compilador, construido para semantic analysis
.
Ese tipo de información, con seguridad puede tener acceso desde Roslyn (API para el compilador de C#). Donde puede insertar en la función API un texto C#
, ejecute un compilador sobre él y recupere Tokens tree
.
Espero que esto ayude.
Por lo que yo sé, no hay forma de encontrar todos los usos en todos los proyectos en su solución. Si su clase tiene un nombre único, la función de búsqueda de Visual Studio tiene un alcance de búsqueda "Solución completa", que busca el texto de búsqueda exacto en cada archivo en su solución.
Esto no se encuentra específicamente cada vez que se utiliza su método, ya que también coincide con los comentarios, campos con nombres similares, cualquier cosa con la misma cadena, pero es un buen comienzo.
- 1. IDE de Java: encuentre todos los usos/referencias INDIRECTOS de una función o clase.
- 2. Visual Studio encuentra usos de una clase de CSS
- 3. ¿Cómo encontrar un método de clase en OCMock?
- 4. Cómo usar call_user_func para el método de clase estática?
- 5. ¿Dónde puedo encontrar una clase C# para "Shamir's Secret Sharing"?
- 6. Buenos usos del método finalize()
- 7. ¿Usos comunes para los indicadores?
- 8. Cómo encontrar el tamaño de una clase en C#
- 9. C#: ¿Cómo puedo llamar a un método estático de una clase base desde un método estático de una clase derivada?
- 10. Encontrar subclases de una clase en Object-C
- 11. 'Clase' no contiene una definición para 'Método'
- 12. C++ Plantilla anidada Clase Método Método
- 13. ¿Usos para clases genéricas estáticas?
- 14. C# Atributos y sus usos
- 15. cómo usar content_tag en una lib/clase
- 16. Clase/método abstracto, cómo C# -> VB.NET
- 17. Eclipse encontrar referencias para el método de
- 18. ¿Cómo puede una clase anónima usar "extender" o "implementar"?
- 19. C# - ¿Cómo comprobar si existe espacio de nombres, clase o método en C#?
- 20. ¿Debo usar una metaclass, decorador de clase o anular el método __new__?
- 21. ¿Cómo puedo usar una clase C++ de Perl?
- 22. Objetivo C - ¿Cómo agregar un método a una clase existente?
- 23. para usar o no usar el 'esto' calificador en C#
- 24. Cómo encontrar el nombre completo del método de llamada C#
- 25. ¿Cómo puedo usar el método Rails "find" para realizar una consulta AND o una OR?
- 26. ¿Cómo usar Jquery $ (". Something") para seleccionar una clase en ExtJS?
- 27. ¿Cómo escribir el método de descripción adecuado para una clase?
- 28. Hacer una clase singleton sin usar el método estático
- 29. Cómo y cuándo usar una clase abstracta
- 30. ¿Por qué deberíamos usar solo 'estático' dentro de una clase o una función (C++)?