¿Cómo determinar qué métodos se llaman en un método?

Me gustaría enumerar todos los métodos que se invocan desde un método específico. P.ej. si tengo el siguiente código:

public void test1() {

   test2();


   test3();
}

La lista debe contener test2 () y test3 (). Sería genial si los métodos de la misma clase pero también los métodos de otra clase pudieran ser listados.

Además, me gustaría encontrar una manera de detectar qué campos se utilizan de un método:

public class A {

   private String test1 = "";
   private String test2 = "";

   public void test() {
      Console.WriteLine(test1);
   }

}

Por lo tanto, debe enumerar test1.

Intenté esto usando Mono.Cecil, pero desafortunadamente no pude encontrar mucha documentación sobre el proyecto. Entonces, ¿alguien sabe cómo hacer eso?

Editar: me gustaría hacerlo con Mono.Cecil porque a través de su API puedo usar directamente los resultados en mi aplicación. Si uso herramientas integradas en Visual Studio o similar, es bastante difícil procesar los resultados.

Respuestas a la pregunta(3)

Su respuesta a la pregunta