【发布时间】:2015-08-11 12:33:48
【问题描述】:
假设我有一个带有静态方法的静态类:
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 与静态类一起使用?
【问题讨论】:
-
您使用的是什么版本的 Visual Studio。 VS2015 (C# 6) 有一个新功能,专门针对这种情况。
-
@ScottChamberlain 2013/4.5.1。如果在升级之前我必须使用魔法字符串,我想我必须这样做。
标签: .net reflection lambda expression