我可以通过 StackTrace 使用如下方式获取有关参数的信息:
catch (Exception ex)
{
var st = new StackTrace(ex);
System.Reflection.ParameterInfo pi = st.GetFrame(0).GetMethod().GetParameters().First();
}
我想知道如何获取参数的值。示例:
如果我在堆栈跟踪中的方法是这样的:
void MyMethod(object value)
电话是这样的:
MyMethod(10);
我想得到值 10。 我该怎么做?
最佳答案
有两种方法。更强大的是用于 .NET 调试的 COM API。例如,调用堆栈中函数的参数和局部变量都可以从 ICorDebugILFrame 访问。 .但这必须从一个单独的进程运行,该进程作为调试器附加到您的进程。
对于进程内省(introspection),有 Profiler API, which also can find information about function arguments .查看有关“影子堆栈”的信息。
关于c# - 如何在堆栈跟踪中获取参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10769651/