Convertir IL a código C #

Necesito convertir el código IL a c #. Tengo una asamblea y estoy leyendo esta asamblea. Obtengo MethodBody de MethodInfo y el método tiene un método GetILAsByteArraY () que devuelve una matriz de bytes ahora. Quiero convertir este código IL a C #. Por favor, ayúdame a resolver esto.

No reinventes la rueda; use el Reflector .NET de Lutz Roeder.

Se compró el reflector Lutz Roeder y ya no está disponible para su descarga gratuita.

Ahora hay una herramienta gratuita (una vez más) llamada ILSpy . He encontrado que es muy bueno, y no solo generará código C # desde IL sino que también creará un proyecto .csproj si descomstack un ensamblaje DLL completo.

¡Reinventar la rueda sin duda una mejor manera de aprender! Tendrá que crear su propia clase que convertiría iL a C #. Esto requiere el conocimiento del lenguaje Intermedio.

Supongo que ya ha convertido el Byte Array a las instrucciones de IL tal como lo vemos en ildasm.exe, utilizando Reflection.Emit.OpCodes, OpCode.OperandType, BitConvertor.ReadByte (), BitConvertor.ReadInt32 etc.

Si quieres hacerlo tú mismo, puedes comenzar desde el antiguo Cecil.Decompiler y mejorarlo, ver el código fuente y una publicación anterior de Jb. Evain anunciando el proyecto (Link down).

Veamos si logro conseguirlo primero: .NET Reflector ! Esto realmente debería ser un FAQ …

¿No puedes hacer esto con Reflector ?

Puede cargar un ensamblaje y verlo como VB.net/C#/IL …

Para los buscadores, Reflector ya no es gratis. Pero se ofrece una herramienta nueva y mejor, sin mencionar la herramienta GRATUITA de telerik llamada JustDecompile . Acabo de descargar esto y es tan increíble y es solo beta. Al parecer telerik promete gratis para siempre.

Solo debe usar .NET Reflector si tiene el ensamblaje. Prueba también el archivo gen addon.

No hay ninguna herramienta en el BCL que haga esto; sin embargo, hay una gran herramienta llamada Reflector , para la cual puedes escribir tus propios complementos. Por lo que probablemente podría usar esto para obtener los datos que desea.

Reflector hace esto. Tal vez podría usar Reflector contra Reflector y aprender cómo maneja el problema.

También podría decir por qué quiere hacer esto: puede haber una mejor solución para su problema general.

Déjame ser el primero en sugerirte que tomes una copia del Reflector de Red Gate.

Tal vez debería probar Dis # si no desea reinventar la rueda … Es casi la mejor herramienta para convertir el código. NetDASM tiene una herramienta que le permite convertir C # a IL. tal vez deberías echarle un vistazo a eso.