Могу ли я получить метод локальных переменных через трассировку стека в C #? - PullRequest
7 голосов
/ 23 апреля 2010

Я хочу получить подробный журнал о моей трассировке стека.Я могу получить StackFrame, а затем метод, а затем получить все параметры этого метода.Так же, как следующий код:

            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);
            }

Но как я могу получить информацию локальные переменные в методе?

Может ли кто-нибудь пролить свет на меня?*

Большое спасибо.

1 Ответ

3 голосов
/ 23 апреля 2010

Возможно, вы захотите посмотреть LocalVariableInfo .

Пример для MSDN // Получить информацию о теле метода.

MethodInfo mi = typeof(Example).GetMethod("MethodBodyExample");
MethodBody mb = mi.GetMethodBody();
Console.WriteLine("\r\nMethod: {0}", mi);

// Display the general information included in the 
// MethodBody object.
Console.WriteLine("    Local variables are initialized: {0}", 
    mb.InitLocals);

foreach (LocalVariableInfo lvi in mb.LocalVariables)
{
    Console.WriteLine("Local variable: {0}", lvi);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...