Extraer nombre del método del árbol de expresión?

Estoy intentando implementar la siguiente función de patrón:

MethodInfo GetMethod(      
  Expression<Func<TTarget, EventHandler<TEventArgs>>> method)

Puedo proporcionar una instancia de TTarget si es necesario

El uso deseado es:

public static void Main(string[] args)
{
    var methodInfo = GetMethod<Program, EventArgs>(t => t.Method);
    Console.WriteLine("Hello, world!");
}

private void Method(object sender, EventArgs e)
{
}

Esto es lo que he probado hasta ahora:

private static MethodInfo GetMethod(TTarget target, Expression<Func<TTarget, EventHandler<TEventArgs>>> method)
{
  var lambda = method as LambdaExpression;
  var body = lambda.Body as UnaryExpression;
  var call = body.Operand as MethodCallExpression;
  var mInfo = call.Method as MethodInfo;

  Console.WriteLine(mInfo);

  throw new NotImplementedException();
}

Imprime:

System.Delegate CreateDelegate(System.Type, System.Object, System.Reflection.Met hodInfo)

Respuestas a la pregunta(2)

Su respuesta a la pregunta