我在对象中有一个方法,可以从对象中的许多地方调用该方法。有没有一种快速简便的方法来获取称为此流行方法的方法的名称。
伪代码示例:
public Main() { PopularMethod(); } public ButtonClick(object sender, EventArgs e) { PopularMethod(); } public Button2Click(object sender, EventArgs e) { PopularMethod(); } public void PopularMethod() { //Get calling method name }
在PopularMethod()我想看到的价值Main,如果它是从所谓的Main......我想看看“ ButtonClick”如果PopularMethod()是从所谓的ButtonClick
PopularMethod()
Main
ButtonClick
我正在查看,System.Reflection.MethodBase.GetCurrentMethod()但无法获取调用方法。我看过这个StackTrace类,但是我确实不喜欢每次调用该方法都运行整个堆栈跟踪。
System.Reflection.MethodBase.GetCurrentMethod()
StackTrace
我认为如果不跟踪堆栈就无法完成。但是,这样做非常简单:
StackTrace stackTrace = new StackTrace(); MethodBase methodBase = stackTrace.GetFrame(1).GetMethod(); Console.WriteLine(methodBase.Name); // e.g.
但是,我认为您真的必须停下来,问问自己是否有必要。