using System.Diagnostics;
using System.Runtime.CompilerServices;
private static MethodsName _methodsName;
public static void Main()
_methodsName = new MethodsName();
public static void MethodL1(){
public static void MethodL0(){
var test = MethodBase.GetCurrentMethod();
Console.WriteLine("Current Method Name " + test.Name);
Console.WriteLine("Hello World ----- " + test.ReflectedType.FullName);
Console.WriteLine("Hello World ----- " + test.ReflectedType.Name);
StackTrace stackTrace = new StackTrace();
Console.WriteLine("Current Method - " + stackTrace.GetFrame(0).GetMethod().Name);
Console.WriteLine("Calling Method - " + stackTrace.GetFrame(1).GetMethod().Name);
Console.WriteLine("Current Method - " + _methodsName.GetCurrentMethodName());
Console.WriteLine("Current Method FullName- " + _methodsName.GetCurrentMethodNameWithClass());
Console.WriteLine("GetCurrentMethod - " + _methodsName.GetCurrentMethod());
Console.WriteLine("GetCurrentFullMethod - " + _methodsName.GetCurrentFullMethod());
public string GetCurrentMethodNameWithClass(){
StackTrace stackTrace = new StackTrace();
var method = stackTrace.GetFrame(1).GetMethod();
var parameters = method.GetParameters();
return $"{method.DeclaringType.FullName} > {method.Name}";
public string GetCurrentMethodName(){
return new StackTrace().GetFrame(1).GetMethod().Name;
public string GetCurrentMethod([CallerMemberName] string methodName = "")
var method = new StackTrace()
.Select(frame => frame.GetMethod())
.FirstOrDefault(item => item.Name == methodName);
public string GetCurrentFullMethod([CallerMemberName] string methodName = "")
var method = new StackTrace()
.Select(frame => frame.GetMethod())
.FirstOrDefault(item => item.Name == methodName);
return $"{method.DeclaringType}.{method.Name}";