Il suffit de demander si quelqu'un sait d'une open source alternative à Redgate de réflecteur ? Je voudrais savoir comment fonctionne réellement un outil similaire à Reflector.
Notez que si vous connaissez une alternative gratuite mais pas open source à Reflector, vous pouvez répondre à la question connexe suivante:
Résumé - Mis à jour le 11 mai 2011
Un rapide tour d'horizon des différents projets et outils open source proposés:
- Infrastructure de compilateur commune (CCI)
- Mono Cecil
- ILSpy
- dnSpy (fork d'ILSpy, le projet semble plus actif que l'original)
- Éditeur Dotnet IL (DILE)
- IL.View
- Monoflecteur ( plus actif depuis avril 2011)
Les ressources suivantes peuvent également être intéressantes:
- TypeView.cs
- Notes de Jason Haley sur le démontage de .NET
- Le récent billet de blog d' Adrian Bank résumant un certain nombre d'alternatives Reflector, y compris plusieurs options non mentionnées ci-dessous.
- Article de blog détaillé de Mark Lichtenberg comparant plusieurs des alternatives open source (DILE, ILSpy et Mono Cecil utilisant MonoDevelop) à Reflector.
.net
reflection
open-source
reflector
MagicAndi
la source
la source
Réponses:
2 options que je connais.
Cependant, cela ne vous donnera pas C #.
la source
Mise à jour 13 décembre 2011
Les outils open source suivants sont disponibles:
la source
Un autre remplaçant serait dotPeek . JetBrains l'a annoncé comme un outil gratuit. Il aura probablement plus de fonctionnalités lorsqu'il est utilisé avec son Resharper mais même lorsqu'il est utilisé seul, il fonctionne très bien.
L'expérience utilisateur ressemble plus à MSVS qu'à un désassembleur autonome. J'aime la lecture de code plus que dans Reflector. La navigation Ctrl + T me convient aussi mieux. Il pourrait être préférable de simplement synchroniser l'arborescence avec le volet de code.
Dans l'ensemble, il est encore en développement mais déjà très bien utilisable.
la source
Telerik a publié aujourd'hui une version bêta de son propre outil de décompilation, JustDecompile . Source fermée, mais gratuite et semble prometteuse.
la source
ILSpy fonctionne très bien!
Pour autant que je sache, il fait tout ce que Reflector a fait et a la même apparence.
la source
En fait, je suis presque sûr que Reflector est considéré comme un désassembleur avec des fonctionnalités de décompilation. Désassembleur car il lit les octets du fichier d'un assembly et le convertit en langage d'assembly (ILasm dans ce cas). La fonctionnalité Decompiler qu'il fournit en analysant l'IL dans des modèles bien connus (comme des expressions et des déclarations) qui sont ensuite traduites dans des langages de niveau supérieur comme C #, VB.Net, etc. L'API addin pour Reflector vous permet d'écrire votre propre traducteur de langue si vous souhaitez ... cependant la magie de la façon dont il analyse l'IL dans les arbres d'expression est un secret bien gardé.
Je recommanderais de regarder l'une des trois choses mentionnées ci-dessus si vous voulez comprendre comment fonctionnent les désassembleurs IL: Dile, CCI et Mono sont toutes de bonnes sources pour ce genre de choses.
Je recommande également fortement d'obtenir la spécification Ecma 335 et le livre de Serge Lidin.
la source
La principale raison pour laquelle j'ai utilisé Reflector (et, je pense, la principale raison pour laquelle la plupart des gens l'ont utilisé) était pour son décompilateur: il peut traduire l'IL d'une méthode en code source.
À ce titre, Monoflector serait le projet à surveiller. Il utilise Cecil, qui fait la réflexion, et Cecil.Decompiler, qui fait la décompilation. Mais Monoflector superpose une interface utilisateur au-dessus des deux bibliothèques, ce qui devrait vous donner une très bonne idée de la façon d'utiliser l'API.
Le monoflecteur est également une alternative décente au réflecteur. Il vous permet de parcourir les types et de décompiler les méthodes, ce qui représente 99% de l'utilisation pour laquelle Reflector a été utilisé. C'est très rugueux sur les bords, mais je pense que cela changera rapidement.
la source
Eh bien, Reflector lui-même est un assemblage .NET, vous pouvez donc ouvrir Reflector.exe dans Reflector pour vérifier comment il est construit.
la source
Je travaille actuellement sur un désassembleur / décompilateur open-source appelé Assembly Analyzer. Il génère du code source pour les méthodes, affiche les métadonnées et les ressources d'assembly et vous permet de parcourir les dépendances.
Le projet est hébergé sur CodePlex => http://asmanalyzer.codeplex.com/
la source
L'outil Réflecteur utilise la réflexion.- apparemment, ce n'est pas correct.Vous avez demandé deux choses - un code qui montre ce que fait le réflecteur, et aussi une alternative au réflecteur.
Voici un exemple, beaucoup simplifié de ce que fait Reflector, mais il montre la technique de réflexion: TypeView.cs
Je n'ai pas de suggestion pour un remplacement de réflecteur open-source.
la source
System.Reflection
dans le framework, a déclaré Roeder très tôt en raison de problèmes de chargement et de déchargement des assemblages.System.Reflection
espace de noms a été étendu depuis les premiers jours de .NET Reflector. Il prend désormais en charge le chargement et le déchargement des assemblages dans un contexte de réflexion uniquement: stackoverflow.com/questions/225330/…