Вы можете сделать это с помощью отражения, передав имя метода в виде строки, а затем используя Type.GetMethod
, чтобы получить метод, а затем вызвать Invoke
для этого с экземпляром типа.
Однако, Лучше всего использовать делегата. В частности, вы можете сделать что-то вроде:
public static string MyMethod(Func<IActionResult> func)
И затем:
var s = MyMethod(() => controller.Index());
Внутри MyMethod
, вы будете вызывать это как любой другой метод, то есть func()
.
Тем не менее, то, что вы пытаетесь в конечном итоге достичь здесь, неясно и подозрительно. Вы не можете просто вызвать HomeController.Index
; вам нужен экземпляр HomeController
. Обновление контроллера вручную, в значительной степени всегда неправильно, поэтому, возможно, есть лучший способ добиться того, чего вы хотите, в общем.
Другими словами, у вас, похоже, проблема XY Вот. Вы пытаетесь сделать X, и вы решили, что Y - способ сделать это (здесь, пытаясь передать ссылку на метод и вызвать ее по какой-то причине). Но вы тоже не знаете, как это сделать. Вместо того, чтобы спрашивать о X, то есть о чем вам на самом деле нужна помощь, вы спрашиваете о Y, который почти наверняка даже не является хорошим способом сделать X, во-первых. Дайте нам больше информации о X, о чем вы действительно хотите, и мы, возможно, сможем дать вам лучший способ добиться этого.