【发布时间】:2015-12-14 00:50:44
【问题描述】:
有什么方法可以获取方法中声明的所有变量和接收到的参数?
我正在尝试以我想要添加到日志的方法中获取所有变量及其值。
我可以使用MethodBase.GetCurrentMethod().GetParameters() 获取方法定义中接收到的参数。
这也有一个缺点,我注意到,我必须明确地传递特定于方法的东西才能获取参数的值。
我想要的是,我想要以一般方式在方法范围中声明的所有变量及其值,而不显式地给出任何方法特定的参数(因为我想为多个方法添加相同的逻辑)。 任何人都请有你的想法。
提前致谢。
【问题讨论】:
-
顺便说一句,我不建议在日志记录中这样做。在试图找到有用的东西时,记录数百万你不需要的东西实际上会导致问题。例如,假设您有
var index = 0,然后在您的方法中有一个while循环,这将如何在您的日志中添加大量无用信息。 -
如果查看为方法生成的 IL,您会发现局部变量的名称并不总是保留。
-
“将相同的逻辑添加到多个方法中”?你能提供一个你想要实现的示例代码吗?
标签: c# variables methods reflection parameters