Pregunta

En mi solicitud me gustaría analizar a través de un ensamblaje y extraer cada método y almacenar el nombre del método y el código fuente en una de mis objetos (I definida en el código).

donde debería empezar a poner en práctica eso?

EDIT: A partir de las respuestas y los comentarios que vi que no es tan fácil de conseguir el código fuente de las asambleas. Entonces, ¿dónde debería empezar si quiero obtener el código fuente de los archivos de código fuente que no están en mi solución actual (Visual Studio)?

¿Fue útil?

Solución

El montaje de no contiene el código fuente. Usted puede ser capaz de extraer la IL, pero sin herramientas como reflector o ildasm que no es especialmente útil.

Para obtener el nombres de los métodos , simplemente algo como:

    var assembly = Assembly.GetExecutingAssembly();
    var names = (from type in assembly.GetTypes()
                 from method in type.GetMethods(
                   BindingFlags.Public | BindingFlags.NonPublic |
                   BindingFlags.Instance | BindingFlags.Static)
                 select type.FullName + ":" + method.Name).Distinct().ToList();

Otros consejos

Para recuperar esta información de depuración, utilice el Compilador Común Infraestructura:. Metadatos proyecto API

Esto le permite leer los archivos .pdb (los archivos que contienen la información de depuración como el archivo de origen y número de línea).

En primer lugar es necesario encontrar todos los tipos.

aquí de hacer eso.

A continuación, puede que tenga que encontrar todos los métodos para cada tipo.

aquí de hacer eso.

Si necesita un ejemplo para ponerlo todo junto, hágamelo saber.

No estoy seguro de cómo obtener el código fuente, pero si usted está tratando de obtener información acerca de los métodos, se debe utilizar la reflexión.

MethodInfo[] methodInfos = typeof(MyClass).GetMethods(BindingFlags.Public |
                                                  BindingFlags.Static);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top