Я пытаюсь получить имя метода, переданное в делегат Action. Это то, что у меня есть:Получение имени метода из делегата действия
private static void DoAction(params Action<Group>[] actions)
{
foreach (Action<Group> action in actions)
{
Console.WriteLine(action.Method.Name);
}
}
И в основном, это то, как она вызывается:
DoAction(y => y.DoBar(), z => z.DoFoo());
После выполнения DoAction() метод, который я надеялся увидеть «DoFoo» и «Dobar «на экране, но вместо этого я вижу < Main>b__0
и <Main>b__1
. Мне просто интересно, есть ли способ получить фактическое имя целевого метода от делегата действия? Любая помощь приветствуется.
Как я могу вызвать метод сейчас? Действие() не работает. Expression.Invoke() также требует аргументов для метода. Предполагая, что методы Foo() и Bar() принимают аргументы, как указать аргументы в main и вызвать их в DoAction()? – PoweredByOrange
@ programmer93 использовать 'Expression.Compile()' для преобразования его в 'Action'. См. Мой обновленный ответ. –