Ich möchte ein detailliertes Protokoll über meine Stack-Trace erhalten. Ich kann einen StackFrame und dann die Methode abrufen und dann alle Parameter dieser Methode abrufen. So wie dem folgenden Code:Kann ich die Methode lokale Variablen durch eine Stapelüberwachung in C# abrufen?
StackTrace st = new StackTrace();
StackFrame[] sfs = st.GetFrames();
foreach (StackFrame sf in sfs)
{
MethodBase method = sf.GetMethod();
ParameterInfo[] pis = method.GetParameters();
foreach (ParameterInfo pi in pis)
{
....
}
Console.WriteLine(method.Name);
}
Aber wie konnte ich die lokale Variablen Infomationen innerhalb einer Methode erhalten?
Könnte jemand etwas Licht auf mich werfen?
Vielen Dank.
Danke Filip. Nur eine weitere Frage, könnte ich den Namen/Typ/Wert der lokalen Variablen bekommen? – smwikipedia
@smwikepedia: Nein, Sie können nicht :) zumindest nicht in verwaltetem Code. Wenn Sie die APIs für nicht verwaltete Profilerstellung verwenden würden, könnte es funktionieren, aber es ist kein einfaches Stück Arbeit. –
Es wäre nicht sinnvoll, den Wert der lokalen Variablen zu ermitteln, da Sie sie außerhalb des Gültigkeitsbereichs überprüfen. –