我注意到,.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