Results for tag "diagnostics"

C# – Ausführenden Methodennamen zur Laufzeit auslesen

Ich hatte in einer Applikation die Notwendigkeit, ungeachtet der Performance, immer mitzuliefern, an welcher Stelle im Code ein Fehler auftritt bzw. aufgetreten ist – steinigt mich daher bitte nicht gleich für den Einsatz der Diagnostics-Klassen, welche bekanntermassen nicht die schnellsten sind!

Mittels folgendem Codesnippet kann man ganz einfach den Methodennamen und andere interessante Dinge auslesen:

[sourcecode language=“csharp“]
/// <summary>
/// Whoes the called me.
/// </summary>
/// <param name="frame">The frame.</param>
/// <returns></returns>
public static string GetCurrentFunctionName(int frame)
{
StackTrace stackTrace = new StackTrace();
StackFrame stackFrame = stackTrace.GetFrame(frame);
MethodBase methodBase = stackFrame.GetMethod();

return methodBase.ToString();
}

[/sourcecode]

Mit dem Parameter „frame“ gebt Ihr an, wieviele Methoden „zurückgesprungen“ werden soll. frame = 0 würde „GetCurrentFunctionName()“ retour liefern. frame = 1 liefert den Methodennamen, welcher die Methode „GetCurrentFunctionName()“ aufgerufen hat. Nach diesem Schema könnt Ihr entsprechend zurückspringen.

Cheers,
Chris