下面是使用扩展方法从字段中获取属性的解决方案。现在我想用类似的方式来处理方法,而不是字段。
public static MemberInfo GetMember<T, R>(this T instance, Expression<Func<T, R>> selector)
{
var member = selector.Body as MemberExpression;
return member?.Member;
}
public static T GetAttribute<T>(this MemberInfo meminfo) where T : Attribute
{
return meminfo.GetCustomAttributes(typeof(T)).FirstOrDefault() as T;
}
使用方法:
var attr = this.GetMember(x => x.AddButtonVisibility).GetAttribute<Test>();
所以在我的情况下,使用应该像这样:
var attr = this.GetMethod(x => x.SomeMethod).GetAttribute<Test>();
有没有任何办法可以实现这个,或者我必须尝试完全不同的东西?