反映局部变量

时间:2008-11-03 11:13:00

标签: c# debugging reflection logging

我正在尝试找到一种方法来自动化一些异常日志记录代码,以添加到已有的堆栈信息中。

有没有办法使用反射来检索堆栈上所有变量的值(本地和参数) - 我真诚地怀疑变量的名称是否可用,但在许多情况下,查看值会很有用。

2 个答案:

答案 0 :(得分:2)

不是真的。对于这种挖掘水平,你可能需要像WinDbg这样的东西。

如果感兴趣的是特定变量,您可以自己将其添加到异常中(尽管这会引入重复键,重入等问题):

    string dir = ...todo...
    try
    {
        // some code
    }
    catch (Exception ex)
    {
        ex.Data.Add("dir", dir);
        throw;
    }

答案 1 :(得分:0)

你可以查看John Robbins的SUPERASSERT(SUPERASSERT Goes .Net),他的书给出了一个很好的演练方法来完成你的目标(加上更多的东西)。