你能从静态类的静态方法中获得MethodInfo吗?



假设我有一个静态类和一个静态方法:

public static class MyClass
{
    public static void MyMethod() { }
}

我可以得到这样的MethodInfo:

MethodInfo MethodInfo = typeof(MyClass).GetMethod("MyMethod");

但是,如果我更改了方法的名称,字符串的神奇属性将导致方法名称保持不变。如果它是非静态类/方法,我可以这样做:

public class MyClass
{
    public void MyMethod() { }
}

MethodInfo MethodInfo = new Action<MyClass>(x => x.MyMethod()).Method;

这很好,因为它是对方法签名本身的引用,所以我可以更改原始方法名称,然后重命名所有引用。但是,这个方法不能与我的类/方法的静态版本一起工作。

是否有一种方法来使用lambda与静态类?

从c# 6.0开始,您可以使用nameof操作符:

MethodInfo MethodInfo = typeof(MyClass).GetMethod(nameof(MyClass.MyMethod));

相关内容

  • 没有找到相关文章