c# - expressions - Obtener el nombre de la función de llamada de la función llamada
lambda expressions c# (2)
Esto le dará el nombre del método en el que se encuentra:
string currentMethod = System.Reflection.MethodBase.GetCurrentMethod().Name;
Use con precaución ya que podría haber un golpe de rendimiento.
To get callers:
StackTrace trace = new StackTrace();
int caller = 1;
StackFrame frame = trace.GetFrame(caller);
string callerName = frame.GetMethod().Name;
Esto usa un paseo de pila para obtener el nombre del método. El valor de la persona que llama es qué tan lejos está la pila de llamadas. Tenga cuidado de no ir muy lejos.
Posible duplicado:
¿Cómo puedo encontrar el método que llamó al método actual?
¿Cómo puedo obtener el nombre de la función de llamada de la función llamada en c #?
new StackFrame(1, true).GetMethod().Name
Tenga en cuenta que en versiones compiladas, el compilador puede alinear el método que se está llamando, en cuyo caso el código anterior devolverá la llamada de la persona que llama, por lo que para estar seguro, debe decorar su método con:
[MethodImpl(MethodImplOptions.NoInlining)]