如何从 MethodBase 类实例中获取对象

本文关键字:获取 取对象 实例 MethodBase | 更新日期: 2023-09-27 18:33:12

我有一个模块(Fody.MethodTimer(,我可以用属性扩展我的类。当我的类的方法被执行时,调用一个静态方法(在另一个类中(

public  class CommandBase
{
    [Time]
    public bool test()
    {
        return true;
    }
}
public static class MethodTimeLogger
{
    public static void Log(MethodBase methodBase, long milliseconds)
    {
        //Do some logging here
    }
}

基本上,在方法调用测试完成后,将执行 Log 方法。如您所见,它获取了一个 MethodBase 参数,并且具有描述调用此方法调用的方法所需的所有内容。

我的问题是,如果有可能从 .NET MethodBase 类实例中获取调用 Log 方法调用的对象。

如何从 MethodBase 类实例中获取对象

No. MethodBase是从类型中提取的,而不是从实例中提取的。 如果要在其上调用方法,则需要将实例作为参数传入。

即使可以,您如何知道在调用方法时使用哪些参数值?

这就是为什么所有内置事件处理程序都有一个 object sender 参数 - 因此您知道哪个对象触发了事件。