Duplicar posibles:
How can I find the method that called the current method?Recuperando el llamado nombre de método desde dentro de un método
tengo un método en un objeto que se llama desde un número de lugares dentro del objeto. ¿Existe una manera rápida y fácil de obtener el nombre del método que llamó a este método popular?
Pseudo código de ejemplo:
public Main()
{
PopularMethod();
}
public ButtonClick(object sender, EventArgs e)
{
PopularMethod();
}
public Button2Click(object sender, EventArgs e)
{
PopularMethod();
}
public void PopularMethod()
{
//Get calling method name
}
Dentro PopularMethod()
me gustaría ver el valor de Main
si se llama desde Main
... Me gustaría ver "ButtonClick
" si PopularMethod()
fue llamado desde ButtonClick
Estaba viendo el System.Reflection.MethodBase.GetCurrentMethod()
, pero eso no me da el método de llamar. Miré la clase StackTrace
, pero realmente no me gustaba ejecutar un seguimiento de pila completo cada vez que se llamaba a ese método.
Para obtener más información, consulte: http://discuss.joelonsoftware.com/default.asp?dotnet.12.511358.10 –
System.Diagnostics es el espacio de nombres de StackTrace, System.Reflection es el espacio de nombres de MethodBase. – Guvante
Jason - Gracias, no estoy seguro de qué tan intensivo de recursos es el método "StackTrace", pero esto me da lo que estoy buscando. Esto es solo un bloque de código de depuración para mí, esto no entrará en producción. Gracias de nuevo por tu ayuda ! –