2010-09-01 19 views
1

Je veux écrire du code (ou s'il y a un outil qui peut donner ces informations) qui peut retourner le chian des méthodes exécutées (ou appelées) - donnant un point de départ (un nom de méthode complet)) comme entrée. Je souhaite que cela puisse être fait en interrogeant des métadonnées sur un assemblage dotnet.chaîne de méthode de requête inversée sur l'assemblage C#

merci pour les pointeurs à l'avance!

mise à jour # 1:http://sequenceviz.codeplex.com/ donne la possibilité de générer un diagramme de chaîne de séquence directe. Je cherche à être capable d'inverser la recherche de la même information. Comme donné une méthode si nous pouvons générer un graphique inverse pour tous les endroits d'où il peut être appelé.

+4

Êtes-vous intéressé par les méthodes réellement appelées lorsque le code est en cours d'exécution (analyse dynamique) ou le graphique des appels * potentiels * (analyse statique). Le premier ne peut être fait en utilisant un outil de profilage d'exécution, ce dernier peut être déterminé en enquêtant sur le code source ou l'assemblage IL sans réellement exécuter le code/programme. –

+1

Pour ce dernier, des outils comme R # peuvent le faire depuis Visual Studio. Reflector.NET peut le faire sur un assemblage. http://www.jetbrains.com/resharper/ http://www.red-gate.com/products/reflector/ – bzlm

+0

Merci, je suis intéressé par la dernière partie - c'est-à-dire le graphique des appels potentiels (analyse statistique). http://sequenceviz.codeplex.com/ semble bon. Je vais regarder dans ceci si cela donne une analyse statique. – dotnetcoder

Répondre

0

utilisez la classe StackTrace pour obtenir cette information. Les informations StackTrace seront plus informatives avec les configurations de construction de débogage.

1

Il était question similaire here

Ce qui suggère plusieurs options comme .Net Reflector, SequenceWiz, nProf. L'un d'entre eux pourrait fonctionner pour vous.

+0

J'ai vérifié SequenceWix il me donne le chaînage en avant. d'une méthode. Existe-t-il un moyen de vérifier également les mêmes mots-clés (par exemple, recherche inversée de la chaîne à partir d'une méthode)? – dotnetcoder