Convertir código C # a código IL

¿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.

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

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

Use 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.

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

O,

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

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.