Duplicar posible:
How can I find the method that called the current method?obtienen llamadas nombre de la función de la función llamada
¿Cómo puedo obtener el nombre de función de llamada de la función de llamada en C#?
Duplicar posible:
How can I find the method that called the current method?obtienen llamadas nombre de la función de la función llamada
¿Cómo puedo obtener el nombre de función de llamada de la función de llamada en C#?
new StackFrame(1, true).GetMethod().Name
Tenga en cuenta que en las versiones de lanzamiento el compilador podría inline el método que se llama, en cuyo caso el código anterior podría volver al llamador de la persona que llama, por lo que es seguro que debe adornar su método con:
[MethodImpl(MethodImplOptions.NoInlining)]
Tenga en cuenta que caminar en la pila de esta manera impondrá un golpe de rendimiento bastante pesado. Recomiendo encarecidamente buscar una solución que no implique una caminata de pila antes de usar una. – jrista
Esta respuesta es en realidad mejor que las respuestas en la pregunta duplicada debido a la mención del atributo MethodImpl. –
Sé que esto es una tontería y etiquetado .net 3.5, pero para ayudar a los buscadores que tropiezan con este primero (como yo), sería bueno indicar en su respuesta que en C# 5.0 ahora puede usar la información de la persona que llama como se describe en: http://visualstudiomagazine.com/articles/2012/11/01/more-than-just-async.aspx – acarlon
Esto le dará el nombre del método que está en:
string currentMethod = System.Reflection.MethodBase.GetCurrentMethod().Name;
Usar con precaución ya que podría haber un impacto en el rendimiento.
To get callers:
StackTrace trace = new StackTrace();
int caller = 1;
StackFrame frame = trace.GetFrame(caller);
string callerName = frame.GetMethod().Name;
Esto utiliza 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.
Duplicado de http://stackoverflow.com/questions/171970/how-can-i-find-the-method-that-called-the-current-method –
Esto es un engaño, pero probablemente vale la pena mantener abierto debido a la terminología diferente - podría ser útil para las personas que buscan. – Keith
@Keith: sí, por eso generalmente tratamos de mantener las preguntas duplicadas cuando se les pregunta de una manera significativamente diferente - es por eso que al cerrarlas automáticamente se agregan los enlaces directamente en la parte superior, para que los buscadores futuros puedan encontrar su camino hacia las respuestas más rápido. – Shog9