Como determinar quais métodos são chamados em um método?

Eu gostaria de listar todos os métodos chamados de um método específico. Por exemplo. se eu tiver o seguinte código:

public void test1() {

   test2();


   test3();
}

A lista deve conter test2 () e test3 (). Seria ótimo se métodos da mesma classe, mas também métodos de outra classe pudessem ser listados.

Além disso, gostaria de encontrar uma maneira de detectar quais campos são usados de um método:

public class A {

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

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

}

Portanto, deve listar test1.

Eu tentei isso usando o Mono.Cecil, mas infelizmente não consegui encontrar muita documentação sobre o projeto. Alguém sabe como fazer isso?

Edit: Eu gostaria de fazê-lo com Mono.Cecil porque, através de sua API, posso usar diretamente os resultados no meu aplicativo. Se eu usar ferramentas integradas no Visual Studio ou similar, é bastante difícil continuar processando os resultados.