【问题标题】:Method parameters value through Reflection通过反射的方法参数值
【发布时间】:2010-09-16 07:45:52
【问题描述】:

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

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

【问题讨论】:

    标签: api reflection .net-3.5 clr


    【解决方案1】:

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

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

    【讨论】:

    • 我认为我不能修改很多代码架构。是否可以注入这个框架只是为了记录参数>
    【解决方案2】:

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

    这会影响性能,但它可能会给你想要的东西......

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2016-04-25
        • 1970-01-01
        • 2011-11-06
        • 2016-05-26
        • 1970-01-01
        • 2011-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多