2011-09-09 32 views
6

Tengo un objeto con algunos métodos y quiero llamar a un método utilizando el nombre del método como solo cadena.¿Cómo llamar al método usando su nombre?

object obj; 
obj.method(); 
+1

Sepa que usted sabe lo que quiere hacer. Pero tu pregunta es realmente confusa ... Intenta editar tu pregunta, por favor. –

Respuesta

8

Dado un método MethodName 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.

+0

es un método vacío. – Amged

2

Además de la reflexión, es posible que también desee consultar la invocación dynamic; que es el envío atrasada (es decir, en tiempo de ejecución en lugar de en tiempo de compilación) de las invocaciones de métodos.

0
object obj; 
var dyn = (dynamic) obj; 
dyn.method(); 
+2

Sí, pero el símbolo 'method' aún debe aparecer como un literal en el código. –

Cuestiones relacionadas