使用反射

时间:2015-08-08 04:48:32

标签: .net reflection

我想在运行时找到对单个类的所有方法调用的位置。我使用反射,但我找不到一种方法来定位它的使用位置。例如:

public class Test 
{
   public void Method1()
   { 
     // do something 
   }
   public void Method2()
   {
     Method2();
   }
}

我想在运行时找到Method2调用Method2。有办法吗?

我认为应该有,因为Visual Studio可以通过"查找所有引用"来实现。感谢。

2 个答案:

答案 0 :(得分:1)

我想你需要解析你正在查看的方法的方法体,请参阅[^]。它可能会帮助你开始。

顺便说一下,如果你在Visual Studio宏中这样做,我相信VS提供了一些可能在没有IL解析的情况下这样做的对象。

答案 1 :(得分:0)

我认为你的代码应该是

public void Method1()
{
    Method2();
}
public void Method2()
{
    StackTrace stackTrace = new StackTrace();
    string name = stackTrace.GetFrame(0).GetMethod().Name;
    Console.WriteLine(name);
   //do something
}


Test test = new Test();
test.Method1(); // write "Method1"
相关问题