如何从 StackTrace 获取参数值

发布于 2024-08-13 08:06:21 字数 310 浏览 3 评论 0原文

在方法调用中,我需要“跳”堆栈三层并检索传递给该方法的参数的类型和值。 获取参数类型很容易,但我找不到一种方法来获取传递给堆栈上某个方法的值。

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 StackTraceis not mandatory.

Is there a wayto find a value of a parameter passed to a method during runtime?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

岁月蹉跎了容颜 2024-08-20 08:06:21

我认为除非您开发自己的系统来存储值,否则没有任何方法。

反射命名空间表示有关程序集的静态数据,您需要在运行时检索值。

我发现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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文