我注意到,.NET 4.5有一个新的属性,称为[CallerMemberNameAttribute]它附加到方法的参数时,将提供名为那方法(如果这是有道理的)。c#获取调用方法没有堆栈跟踪
然而,不幸的是(因为我想与XNA做一些事情),我只针对.NET 4.0。
我希望能够做一些事情,如:
void MethodA() {
MethodB();
}
void MethodB() {
string callingMethodName = (...?);
Console.WriteLine(callingMethodName);
}
凡我输出将治法。
我知道我可以通过堆栈跟踪做到这一点,但这是一个)不可靠和b)Sloooow ... 所以我不知道是否有任何其他方式来收集这些信息,但是这可能是...
我一直希望任何人有任何想法或知识可以解决这个问题。在此先感谢:)
作为字符串传入调用方法名称? – Oded
@Oded很明显,我可以调用MethodB(“MethodA”),但重点是我试图动态执行它,所以如果我将MethodA更改为MethodC,则不必编辑该调用。 – Xenoprimate
你在这个问题上没有提到这一点。 – Oded