如何从StackTrace中获取参数值

6
在方法调用内部,我需要“跳跃”三层堆栈,并检索传递给该方法的参数类型和值。获取参数类型很容易,但我找不到一种方法来获取传递给堆栈上某个方法的值。
var st = new StackTrace();
var frames = st.GetFrames();
var methodParameters = frame[2].GetMethod().GetParameters;
// get each parameter value

注意:使用StackTrace并非强制要求。
在运行时有没有一种方法可以找到传递给方法的参数值?

我刚遇到这个问题,找不到一个好的方法来获取值。最终我创建了一个框架,在我的应用程序入口处存储这些值。 - rerun
我可能在要求不可能的事情 - 看起来无法从堆栈跟踪中获取被调用方法的值。 - Dror Helper
1个回答

6
我认为除非您开发自己的值存储系统,否则没有方法。
反射命名空间表示有关程序集的静态数据,并且您需要在运行时检索值。
我在MSDN论坛上找到了提到PostSharp,但我从未尝试过。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接