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?

StackOverflow https://stackoverflow.com/questions/1873998

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!

¿Fue útil?

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
scroll top