发现需要能够以声明方式(用于 AOP、反射等)获取方法名称,以便编译器检查强制执行重大更改等。很好的例子:
invocation.Method.Name.Equals("GetAll"
.. 有没有办法像使用 lambda/通用方法一样做到这一点,所以我不必将方法名称作为字符串文字?我以前用过这样的东西来获取属性名称:
public static string GetPropertyName<T, P>(Expression<Func<T, P>> propSelector)
where T : class
{
return (propSelector.Body as MemberExpression).Member.Name;
}
..但是是否有一种可靠且简单的方法可以为方法做同样的事情?