Можно ли передать строго типизированное имя метода в качестве лямбда-выражения без указания параметров и / или скобок?
Например, если у меня есть следующий метод:
public class CalleeClass
{
public void MethodA(obj param1, obj param2)
{
...
}
}
Я хотел бы вызвать этот метод в другом месте через:
return new MyClass<CalleeClass>(c => c.MethodA); //Note: no ()'s or arguments
Где MyClass будет отвечать, скажем, за маршрутизацию MVC с использованием имени метода в качестве цели.Цель здесь состоит в том, чтобы мы хотели иметь возможность использовать строго типизированные представления с помощью методов контроллера, и я не хочу предоставлять «глупые» параметры, которые не используются.
В настоящее время яиспользуя код, подобный следующему, чтобы использовать имена методов, но этот стиль все еще требует передачи ложных аргументов и / или скобок.
public void MyClass<T>(Expression<Action<T>> action)
{
var methodName = (action.Body as MethodCallExpression).Method.Name;
}
РЕДАКТИРОВАТЬ: Извините за путаницу,но я сначала попытался упростить проблему, включив в нее только то, что, как мне показалось, вам нужно, и при этом пропустил некоторую ключевую информацию.Конечная цель здесь состоит в том, чтобы MyClass получил обобщенное выражение типа + лямбда, и лямбда-выражение может передавать строго типизированное имя метода без создания экземпляра объекта.-MB