uncategorized

取得當前程式執行階段的Method Name

當你在開發或維護大型程式系統時,其系統中的各項Method錯綜複雜(就是程式很亂),又有馬上需要 Trouble shooting壓力,這時候就很需要知道,程式是執行到哪一個Method,方便進行Trace。通常我會把這功用下列兩個地方:

  1. 系統發生Exception地方,需記錄知道哪一個Method發生問題
  2. 系統Kernel的地方,以方便了解資料進出是發生在哪一個Method
  • 首先參照下面的Namespace
    1
    using System.Reflection

System.Reflection命名空間包含的型別可透過檢查 Managed 程式碼中組件、模組、成員、參數和其他實體Entity的中繼資料Metadata,擷取這些項目的相關資訊

  • MethodInfo類別或是MethodBase類別的GetCurrentMethod方法來取得Method名稱
    1
    2
    3
    4
    5
    public static void Method2()
    {
    Console.Write(string.Format("Method Name:{0}",MethodBase.GetCurrentMethod().Name));
    Console.Write(string.Format("Method Name:{0}",MethodInfo.GetCurrentMethod().Name));
    }

當程式發生問題時候,在Trace bug就可以比較容易找出問題的環節了。不然,就會摸不著頭緒找Bug