Как определить, какие методы вызываются в методе?

Я хотел бы перечислить все методы, которые вызываются из определенного метода. Например, если у меня есть следующий код:

public void test1() {

   test2();


   test3();
}

Список должен содержать test2 () и test3 (). Было бы здорово, если бы можно было перечислить методы одного и того же класса, но также и методы другого класса.

Дополнительно я бы хотел найти способ определить, какие поля используются в методе:

public class A {

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

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

}

Следовательно, должен быть указан test1.

Я пробовал это с помощью Mono.Cecil, но, к сожалению, мне не удалось найти много документации по проекту. Кто-нибудь знает, как это сделать?

Edit: Я хотел бы сделать это с помощью Mono.Cecil, потому что через его API я могу напрямую использовать результаты в моем приложении. Если я использую встроенные инструменты в Visual Studio или аналогичные, дальнейшую обработку результатов будет довольно сложно.

7
задан 1 November 2010 в 23:21
поделиться