我試圖得到第一個方法名稱,發起了多個方法調用。如何在C#中的多個子方法中找到父方法名?
,比如我有以下,
static void Main(string[] args)
{
Test1();
}
static void Test1()
{
Test2();
}
static void Test2()
{
Console.WriteLine("Soemthing");
}
在Test2的方法,我需要知道的主要方法已經啓動了這一鏈條。 我嘗試使用StackTrace和Reflection如下。
StackTrace stackTrace = new StackTrace();
MethodBase methodBase = stackTrace.GetFrame(1).GetMethod();
Console.WriteLine(methodBase.Name);
但stackTrace.getFrame(1)不是我所期望的。它會給我以前的方法是Test1。
我不想將getFrame值硬編碼爲以獲取Main方法。
有沒有辦法從任何子方法獲得父方法沒有硬編碼幀值?
如果您想手動執行此操作,您可以右鍵單擊該方法,然後單擊Go To Deifnition或Peek Definition,繼續這樣做,直到找到所需的父級。但自動im不知道 – Brendon
「初始方法」的標準是什麼?在單線程控制檯應用程序中,它始終是'Main',不需要確定它...在Web服務中,您可以通過IIS程序集爬取... –
我這樣做只是爲了研究。但最終我們會使用MVC 6 WebAPi。@RenéVogt –