2

我正在尝试使用反射记录方法的参数。我也阅读了关于 StackOverflow 上发布的关于此问题的较早问题,这将我指向 CLR API。

是否有可能,有人可以指出我正确的方向,至于我将如何获取使用 API 传递的参数值?

4

3 回答 3

3

基本上你不能在“香草”.NET 代码中。参数只是局部变量,如果不深入研究其他线程中提到的调试器 API,就无法获取它们的值。

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

于 2008-10-09T16:18:41.063 回答
1

如果您喜欢冒险,可以查看 System.Runtime.Remoting.Messaging 中的 RealProxy 类。它允许您实现一个代理类,该类可以拦截对您的方法的调用。然后,您可以注销参数并将呼叫转发到您的实际班级。

这会对性能产生影响,但它可能会给你你正在寻找的东西......

于 2008-10-09T16:41:14.857 回答
0

@Sean:这看起来很有希望,是否可以在 WCF 中拦截并获取类似的值?我知道服务日志已经包含该信息,但很难挖掘它,这使我寻找记录方法及其参数的替代方法。

于 2008-10-09T16:57:16.367 回答