¿Cómo llamar al método usando su nombre?

Tengo un objeto con algunos métodos y quiero llamar a un método usando el nombre del método solo como cadena.

object obj; obj.method(); 

Dado un MethodName Method con la firma void MethodName(int num) , se haría algo como:

  MethodInfo method = obj.GetType().GetMethod("MethodName", BindingFlags.Public|BindingFlags.Instance) method.Invoke(obj, 4) // void method 

Espero que esto ayude.

Además de la reflexión, es posible que también desee ver la invocación dinámica ; que es el envío de las invocaciones de métodos en el extremo (es decir, en tiempo de ejecución y no en tiempo de comstackción).

 object obj; var dyn = (dynamic) obj; dyn.method();