Можно ли отправить выражение в метод, получить имя метода и выполнить выражение и вернуть результат?
Идея:
internal T Execute<T>(Expression expr)
{
// Get method name and the parameters from the expression.
// Check the methodname+parameters against the db
// Execute the expression and return T
return Expression.Execute(expr);
}
Звонок будет выглядеть так:
Expression<Func<string, string, Guid>> myExpression2 = (a, b) => PostMessage(a, b, 1);
return Execute<Guid>(myExpression2);
У вызовов также будут разные типы возврата, в данном случае это guid. Это позволило бы мне проверить метод выражения в методе execute и определить, требуется ли дополнительная регистрация или что-то требует дополнительной аутентификации.
Выражения всегда вызывают метод, такой как PostMessage, GetMessages или подобный.