我正在尝试找到一种方法来自动化一些异常日志记录代码,以添加到已有的堆栈信息中。
有没有办法使用反射来检索堆栈上所有变量的值(本地和参数) - 我真诚地怀疑变量的名称是否可用,但在许多情况下,查看值会很有用。
答案 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),他的书给出了一个很好的演练方法来完成你的目标(加上更多的东西)。