2009-06-25 11 views
5

¿Hay alguna manera en .NET 3.0 (o anterior) para obtener una representación de cadena de un método? Sé que puedo obtener una matriz de bytes IL de un objeto MethodBody, pero estoy interesado en obtener una cadena que esencialmente represente el cuerpo del método tal como aparece a mis ojos en VS.C# Cadena de representación del método

He buscado en el espacio de nombres CodeDom para ver si había una manera de convertir los métodos a CodeMemberMethods en tiempo de ejecución, pero hasta ahora me he quedado sin nada.

¿Alguna idea?

Respuesta

12

Eso es un trabajo muy complejo. Básicamente, estarías buscando volver a escribir reflector en tu código ... y no olvides que no todas las IL se pueden revertir.

La respuesta corta es "no, nada incorporado".

Incluso los árboles de expresión (de lambdas) no pueden ser totalmente invierten de nuevo a cadenas apropiadas fácilmente.

2

Intente hurgar con API reflector (es posible que desee comprobar si todavía está disponible después de que Red Gate lo asumió).

Aún si tiene éxito, perderá parte de la información original, como nombres de variables locales, comentarios o algún formato.

Básicamente todo lo que se tira durante la compilación se pierde para siempre.

Cuestiones relacionadas