Solo para preguntar si alguien conoce una alternativa de código abierto para Reflector de RedGate . Estoy interesado en comprobar cómo funciona realmente una herramienta similar a Reflector.
Tenga en cuenta que si conoce una alternativa gratuita pero no de código abierto a Reflector, puede responder la siguiente pregunta relacionada:
Resumen - Actualizado el 11 de mayo de 2011
Un resumen rápido de los diversos proyectos y herramientas de código abierto que se han sugerido:
- Infraestructura del compilador común (CCI)
- Mono Cecil
- ILSpy
- dnSpy (bifurcación de ILSpy, el proyecto parece más activo que el original)
- Dotnet IL Editor (DILE)
- IL.View
- Monoflector ( ya no está activo a partir de abril de 2011)
Los siguientes recursos también pueden ser de interés:
- TypeView.cs
- Notas de Jason Haley sobre el desmontaje de .NET
- La reciente publicación de blog de Adrian Bank resume varias alternativas de Reflector, incluidas varias opciones que no se mencionan a continuación.
- La publicación detallada del blog de Mark Lichtenberg que compara varias de las alternativas de código abierto (DILE, ILSpy y Mono Cecil usando MonoDevelop) con Reflector.
.net
reflection
open-source
reflector
MagicAndi
fuente
fuente
Respuestas:
2 opciones que conozco.
Sin embargo, estos no te darán C #.
fuente
Actualizado el 13 de diciembre de 2011
Las siguientes herramientas de código abierto están disponibles:
fuente
Otro reemplazo sería dotPeek . JetBrains lo anunció como una herramienta gratuita. Probablemente tendrá más funciones cuando se use con su Resharper, pero incluso cuando se usa solo, funciona muy bien.
La experiencia del usuario se parece más a MSVS que a un desensamblador independiente. Me gusta leer códigos más que en Reflector. La navegación Ctrl + T también me queda mejor. Simplemente sincronizar el árbol con el panel de código podría ser mejor.
Con todo, todavía está en desarrollo, pero ya se puede usar muy bien.
fuente
Telerik lanzó hoy una Beta de su propia herramienta de descompilación, JustDecompile . Fuente cerrada, pero gratuita y parece prometedora.
fuente
¡ILSpy funciona muy bien!
Por lo que puedo decir, hace todo lo que Reflector hizo y se ve igual.
fuente
En realidad, estoy bastante seguro de que Reflector se considera un desensamblador con algunas funciones de descompilador. Desensamblador porque lee los bytes del archivo de un ensamblado y lo convierte a un lenguaje ensamblador (ILasm en este caso). La funcionalidad del descompilador que proporciona al analizar el IL en patrones bien conocidos (como expresiones y declaraciones) que luego se traducen a idiomas de nivel superior como C #, VB.Net, etc. La API de complemento para Reflector le permite escribir su propio traductor de idiomas si desea ... sin embargo, la magia de cómo analiza el IL en los árboles de expresión es un secreto muy bien guardado.
Recomendaría mirar cualquiera de las tres cosas mencionadas anteriormente si desea comprender cómo funcionan los desensambladores IL: Dile, CCI y Mono son buenas fuentes para estas cosas.
También recomiendo obtener la especificación Ecma 335 y el libro de Serge Lidin también.
fuente
La razón principal por la que usé Reflector (y, creo, la razón principal por la que la mayoría de la gente lo usó) fue por su descompilador: puede traducir la IL de un método nuevamente en código fuente.
En ese sentido, Monoflector sería el proyecto a seguir. Utiliza Cecil, que hace la reflexión, y Cecil.Decompiler, que hace la descompilación. Pero Monoflector coloca una interfaz de usuario en la parte superior de ambas bibliotecas, lo que debería darle una muy buena idea de cómo usar la API.
Monoflector es también una alternativa decente a Reflector directamente. Le permite explorar los tipos y descompilar los métodos, que es el 99% de lo que la gente usaba Reflector. Es muy difícil, pero creo que eso cambiará rápidamente.
fuente
Bueno, Reflector en sí es un ensamblado .NET, por lo que puede abrir Reflector.exe en Reflector para ver cómo está construido.
fuente
Actualmente estoy trabajando en un desensamblador / descompilador de código abierto llamado Assembly Analyzer. Genera código fuente para métodos, muestra metadatos de ensamblaje y recursos, y le permite recorrer las dependencias.
El proyecto está alojado en CodePlex => http://asmanalyzer.codeplex.com/
fuente
La herramienta Reflector usa Reflection.- Aparentemente esto no es correcto.Usted solicitó dos cosas: código que muestra lo que hace el reflector, y también una alternativa al reflector.
Aquí hay un ejemplo, mucho más simplificado de lo que hace Reflector, pero muestra la técnica de reflexión: TypeView.cs
No tengo una sugerencia para un reemplazo de Reflector de código abierto.
fuente
System.Reflection
en el marco, Roeder lo dijo desde el principio debido a problemas con la carga y descarga del ensamblaje.System.Reflection
espacio de nombres se ha ampliado desde los primeros días de .NET Reflector. Ahora es compatible con la carga y la descarga de ensamblajes en un contexto de solo reflexión: stackoverflow.com/questions/225330/…