Responder a “¿Qué método me ha llamado?” En el tiempo de ejecución en .NET? O es CallStack de datos legibles por el código?
-
18-09-2019 - |
Pregunta
presumir que hay MethodA (), methodB () y methodC ().
Y methodC () es llamado en el tiempo de ejecución.
Está es posible conocer methodC () se llama a partir de qué método?
Estaba pensando si CallStack se puede leer en el tiempo de ejecución de algunas comprobaciones? Si es así, creo que no debería ser un gran problema.
¿Alguna idea?
Gracias!
Solución
Utilice las clases StackTrace y StackFrame. Por ejemplo:
StackTrace stackTrace = new StackTrace();
StackFrame[] stackFrames = stackTrace.GetFrames();
foreach (StackFrame stackFrame in stackFrames)
{
string method = stackFrame.GetMethod().Name;
// do some stuff with method
}
Otros consejos
Sí, la pila de llamadas se puede leer en tiempo de ejecución usando StackTrace.GetFrames .
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow