给定以下方法签名:
string GetActionName<TController, T1, TResult>(Expression<Func<TController, Func<T1, TResult>>> expression)
如何从以下实现中获取方法名称:
GetActionName<EventsController, int, IEnumerable<EventDto>>(c => c.GetEventsByIdLocation);
哪里GetEventsById
有签名:
IEnumerable<EventDto> GetEventsByIdLocation(int id)
我目前的尝试给了我一个例外:
无法将“System.Linq.Expressions.InstanceMethodCallExpressionN”类型的对象转换为“System.Linq.Expressions.MemberExpression”类型。
var convertExpression = (UnaryExpression)expression.Body;
var memberExpression = (MemberExpression)convertExpression.Operand;
return memberExpression.Member.Name;