11
votes

Comment utiliser C # pour trouver des usages d'une classe ou d'une méthode?

Dans Visual Studio, je peux cliquer avec le bouton droit de la souris sur une classe ou une méthode et choisir "Trouver des usages". Cela me donne une liste d'endroits dans ma solution où ce morceau de code est utilisé. Comment puis-je faire la même chose de mon code?


0 commentaires

3 Réponses :


12
votes

Vous auriez besoin d'analyser votre code pour le faire. Je ne pense pas que vous puissiez le faire avec une réflexion. MS travaille sur un projet appelé Roslyn. C'est une sorte d'API pour le compilateur .NET. Cela devrait vous fournir ce dont vous avez besoin. Découvrez Ceci Post pour plus de détails sur le projet ROSLYN.

Citation du message:

Cela ouvre de nouvelles opportunités pour les extenseurs VS d'écrire un puissant refacteurs et outils d'analyse de la langue, ainsi que permettre à quiconque de incorporer nos analyseurs, moteurs sémantiques, générateurs de code et script dans leurs propres applications.

Cet article montre travailler avec des symboles.
Cet article réponses la question de recevoir toutes les références.


0 commentaires

4
votes

Pour être honnête, je ne l'ai jamais fait auparavant, comme je n'avais jamais besoin de quelque chose.

Pour l'accès aux types d'informations, vous devez avoir accès à Token Tree du compilateur, construit pour Analyse sémantique .

Ce type d'information, à coup sûr Vous pouvez avoir accès à partir de ROSLYNN (API pour compiler C #). Lorsque vous pouvez appuyer sur la fonction API, un texte c # , exécutez un compilateur sur l'informatique et récupère arborescence des jetons .

Vue d'ensemble du projet ROSLYN

J'espère que cela aide.


0 commentaires

0
votes

Autant que je sache, il n'ya aucun moyen de trouver tous les usages dans tous les projets de votre solution. Si votre classe a un nom unique à celui-ci, la fonction de recherche de Visual Studio a une étendue de recherche «solution complète», qui recherche le texte de recherche exacte dans chaque fichier de votre solution.

Cela ne trouve pas spécifiquement chaque fois que votre méthode est utilisée, car elle correspond également à des commentaires, également nommés champs, tout avec la même chaîne, mais c'est un bon départ.


0 commentaires