1. ホーム
  2. c#

[解決済み] 現在のメソッドを呼び出したメソッドを見つけるにはどうすればよいですか?

2022-03-16 06:18:16

質問

C#でログを取るとき、現在のメソッドを呼び出したメソッドの名前を知るにはどうしたらよいでしょうか。私はすべて知っている System.Reflection.MethodBase.GetCurrentMethod() しかし、スタックトレースでは、その一歩下を行きたいのです。スタックトレースを解析することも考えましたが、もっとすっきりした、次のような明示的な方法を見つけたいと思っています。 Assembly.GetCallingAssembly() ただし、メソッドの場合。

どのように解決するのですか?

これを試してみてください。

using System.Diagnostics;
// Get call stack
StackTrace stackTrace = new StackTrace(); 
// Get calling method name
Console.WriteLine(stackTrace.GetFrame(1).GetMethod().Name);

ワンライナー

(new System.Diagnostics.StackTrace()).GetFrame(1).GetMethod().Name

からです。 Reflectionを利用した呼び出しメソッドの取得【C#】について .