如何从 StackTrace 获取参数值
在方法调用中,我需要“跳”堆栈三层并检索传递给该方法的参数的类型和值。 获取参数类型很容易,但我找不到一种方法来获取传递给堆栈上某个方法的值。
var st = new StackTrace();
var frames = st.GetFrames();
var methodParameters = frame[2].GetMethod().GetParameters;
// get each parameter value
注意:使用 StackTrace 不是强制性的。
有没有办法找到在运行时传递给方法的参数值?
From within a method call I need to "jump" three layers up the stack and retrieve the type and value of the parameters passed to that method.
Getting the parameter type is easy but I couldn't find a way to get the value passed to a certain method on the stack.
var st = new StackTrace();
var frames = st.GetFrames();
var methodParameters = frame[2].GetMethod().GetParameters;
// get each parameter value
Note: using StackTrace
is not mandatory.
Is there a wayto find a value of a parameter passed to a method during runtime?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为除非您开发自己的系统来存储值,否则没有任何方法。
反射命名空间表示有关程序集的静态数据,您需要在运行时检索值。
我发现MSDN论坛中提到了PostSharp,但我从未尝试过。
I do not think there is a method unless you develop your own system for storing the values.
The reflection namespace represents static data about an assembly, and you would need to retrieve values at runtime.
I found PostSharp mentioned in MSDN forums, but I have never tried it.