相关疑难解决方法(0)

如何在stacktrace中获取参数值

我可以通过StackTrace获取有关参数的信息,使用类似的方法:

catch (Exception ex)
{
    var st = new StackTrace(ex);

    System.Reflection.ParameterInfo pi = st.GetFrame(0).GetMethod().GetParameters().First();
}
Run Code Online (Sandbox Code Playgroud)

我想知道我如何获得参数的值.例:

如果我在堆栈跟踪中的方法是这样的:

void MyMethod(object value)
Run Code Online (Sandbox Code Playgroud)

电话就像:

MyMethod(10);
Run Code Online (Sandbox Code Playgroud)

我想得到价值10.我怎么做?

.net c# system.diagnostics exception stack-trace

15
推荐指数
1
解决办法
1万
查看次数

是否可以在.NET中调用堆栈中的每个帧获取参数值

我在谈论托管的.NET代码.如果我们运行任何程序并将VS附加到它,我们可以看到调用堆栈中每个方法的参数值.我想创建一个日志记录解决方案,它将记录调用堆栈中每个方法的所有参数值.实际上我需要这个信息,以防发生异常.

我知道可以通过分析API来实现.但我想知道只有托管代码才有可能吗?

更新:好的,可能使用纯.NET,这是不可能的.然后可能有某种非托管代码......重点是从应用程序本身内部执行此操作.在异常的情况下,应用程序可以调用某个库(可能是非托管的),它返回有关调用堆栈中方法值的信息.只是想一想......

.net clr diagnostics

11
推荐指数
1
解决办法
2348
查看次数