.NET で呼び出し元のメソッド情報を知りたいときは
なにげに備忘録。スタックトレース内の最初のフレームのメソッド情報を取得します。以下の方法でおk。
var callingMethod = new System.Diagnostics.StackTrace(1, false).GetFrame(0).GetMethod(); Console.WriteLine(callingMethod.Name);
Dim callingMethod = New System.Diagnostics.StackTrace(1, False).GetFrame(0).GetMethod() Console.WriteLine(callingMethod.Name)
以下サンプルです。
class Program { static void GetCallingMethodName() { var callingMethod = new System.Diagnostics.StackTrace(1, false).GetFrame(0).GetMethod(); Console.WriteLine(callingMethod.Name); } static void A() { GetCallingMethodName(); } static void B() { GetCallingMethodName(); } static void C() { GetCallingMethodName(); } static void D() { GetCallingMethodName(); } static void Main(string[] args) { A(); // A B(); // B C(); // C D(); // D } }
参考記事 : StackTrace クラス
参考記事 : StackTrace.GetFrames メソッド
参考記事 : StackFrame.GetMethod メソッド