方法参数值通过Reflection

时间:2008-10-09 16:11:19

标签: api reflection .net-3.5 clr

我正在尝试使用反射来记录方法的参数。我在StackOverflow上阅读了有关此问题的earlier question,并将其指向了CLR API。

有可能,有人可以指出我正确的方向,我将如何获得使用API​​传递的参数值?

3 个答案:

答案 0 :(得分:3)

基本上你不能用“vanilla”.NET代码。参数只是局部变量,如果不深入研究另一个线程中提到的调试器API,则无法获取它们的值。

可以能够做的是使用PostSharp插入日志记录代码。我建议在查看调试API之前先走这条路线!

答案 1 :(得分:1)

如果您有冒险精神,可以在System.Runtime.Remoting.Messaging中查看RealProxy类。它允许您实现一个代理类,可以拦截对您的方法的调用。然后,您可以注销参数并将调用转发到您的实际课程。

这会有一个性能打击,但它可能会给你你想要的......

答案 2 :(得分:0)

@ Sean:这看起来很有希望,是否有可能在WCF中拦截并获得类似的值?我知道服务日志已经包含了这些信息,但很难深入研究,这使我找到了记录方法及其参数的替代方法。