Beantwortung der Frage „Welche Methode hat mich angerufen?“ An der Laufzeit in .NET? Oder ist Callstack Daten lesbar durch den Code?

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

Frage

Presume, dass es methodA (), methodeB () und methodC ().

Und methodC () an der Laufzeit genannt.

Ist es möglich, zu wissen, methodC () aus, welche Methode aufgerufen wird?

Ich dachte, wenn Callstack kann an der Laufzeit für einige Schecks gelesen werden? Wenn ja, ich denke, es sollte kein großes Problem sein.

Irgendwelche Ideen?

Danke!

War es hilfreich?

Lösung

Mit dem Stacktrace und StackFrame- Klassen. Zum Beispiel:

  StackTrace stackTrace = new StackTrace();          
  StackFrame[] stackFrames = stackTrace.GetFrames();

  foreach (StackFrame stackFrame in stackFrames)
  {
    string method = stackFrame.GetMethod().Name;
    // do some stuff with method
  }

Andere Tipps

Ja, kann der Call-Stack zur Laufzeit gelesen wird mit

scroll top