2011-12-25 1 views
4

Je cherche un framework qui permet de décompiler un assembly .NET pour obtenir le code source. Je sais que Reflector offre une sorte d'API pour effectuer des opérations sur les assemblages, quand je l'ai utilisé, il semble que je récupère seulement les instructions IL et non le code source réel. Ce que je voudrais faire est de définir une sorte de gestionnaire d'exception intelligent non gérée, qui me fournira les lignes de code défaillantes (à des fins de débogage interne). Est-ce possible en utilisant l'API Reflector? quels autres outils sont disponibles à cette fin?Utilisation de l'API Reflector pour obtenir le code source décompilé

+1

Qu'avez-vous trouvé lorsque vous avez cherché? –

+0

Je ne suis pas sûr d'avoir compris votre question - cherché quoi? –

+0

Voulez-vous vraiment un cadre? Il existe des outils pour cela (ILSpy/Reflector peut le faire aussi). Cependant, si le code est obscurci, c'est une autre histoire. –

Répondre

3

J'ai écrit quelques articles qui pourraient vous être utiles.

http://www.simple-talk.com/dotnet/.net-framework/-.net-reflector-meets-the-codedom/ parle de créer votre propre langage pour que Reflector soit démodé. Ceci est utile pour diriger les structures de langage que Reflector va lancer.

http://www.simple-talk.com/dotnet/.net-tools/hosting-.net-reflector-in-your-own-application/ parle de l'hébergement de Reflector dans votre propre code pour utiliser l'API. Cela vous guidera à travers le processus d'accès à l'API dans le réflecteur et l'accès à sa logique. J'espère que cela vous aidera au moins dans la direction pour obtenir ce dont vous avez besoin.

2

Vous pouvez jeter un oeil à la (Open Source) ILSpy. Puisqu'ils sont capables de faire ce dont vous avez besoin et qu'ils fournissent aussi le code source, vous devriez pouvoir prendre cela comme point de départ.

+2

Cela n'est-il pas possible du tout avec l'API Reflector? Je vais vérifier ILSpy. –

-1

je ne suis pas sûr que je comprends ce que vous avez besoin, mais si vous voulez des informations sur la durée d'exécution où une exception est survenue, vous pouvez utiliser les StackTrace et StackFrame classes trouvées dans l'espace de noms System.Diagnostics pour récupérer des informations de la pile d'appel. Mais malheureusement, vous n'obtiendrez pas le code source en texte clair.

+1

D'où ma question. –

Questions connexes