tutorial net msil language intermediate guide framework development curso common c# .net il

c# - net - common intermediate language



Convertir código C#a código IL (6)

¿Cómo puedo obtener el código IL del código C #? ¿Puedo hacer esto con una biblioteca externa, o existen funciones internas?

EDITAR: Quiero mostrar el código IL en mi aplicación con un MessageBox.


Echa un vistazo a LinqPad, tiene opciones para ver IL.


Es una pregunta bastante antigua, pero me gustaría agregar algunas precisiones.

GetMethodBody() le proporcionará, en el mejor de los casos, una matriz de bytes, que debe analizar manualmente (lo que puede ser doloroso, ya que algunos GetMethodBody() tienen dos bytes) para obtener un texto legible.

Solo quiero mencionar a ILSpy como una solución alternativa.

Es de código abierto, lo que significa que puede depurarlo e integrarlo con su solución.


O,

Start -> Programs -> Microsoft .NET Framework SDK (Version) -> Tools -> MSIL Disassembler


Simplemente abra un indicador de comandos de Visual Studio y escriba ildasm ; con ildasm puede abrir cualquier ensamblaje y mostrar el IL generado.


Utilice el desensamblador IL de esta manera:

c:/il>csc Class.cs c:/il>ildasm /output=Class.il Class.exe

ambos tendrán el IL y el exe.


Programáticamente Puede usar la reflexión para obtener un MethodInfo y luego llamar a MethodBase.GetMethodBody para obtener el cuerpo. Desde MethodBody , puede llamar a GetILAsByteArray entre otras cosas.

Por supuesto, si solo desea examinarlo usted mismo, hay Reflector , dotPeek , ildasm (parte del SDK de .NET) y, sin duda, otras herramientas ...