这个问题已经有了答案:
从一个方法调用中,我需要向上“跳转”三层堆栈,并检索传递给该方法的参数的类型和值。 获取参数类型很容易,但我找不到一种方法来获取传递给堆栈上某个方法的值。
var st = new StackTrace(); var frames = st.GetFrames(); var methodParameters = frame[2].GetMethod().GetParameters; // get each parameter value
注:使用 StackTrace 不是强制性的。
StackTrace
是否有方法查找在运行时传递给方法的参数值?
我不认为有任何方法,除非您开发自己的系统来存储这些值。
反射命名空间表示 静止的 关于程序集的数据,您需要在运行时检索值。
我发现 PostSharp 在msdn论坛上提到过,但我从未尝试过。