Ejecutar un método por su nombre en un string

18/10/2005 - 17:07 por Benton | Informe spam
Hola grupo,

Teniendo una variable string = "Agregar()", ¿es posible ejecutar el método
Agregar() definido en la clase?

Saludos,

-Benton

Preguntas similare

Leer las respuestas

#1 A.Poblacion
18/10/2005 - 17:46 | Informe spam
"Benton" wrote in message
news:%23sw$xW$
Teniendo una variable string = "Agregar()", ¿es posible ejecutar el método
Agregar() definido en la clase?



Tienes que usar Reflection. Algo parecido a lo siguiente:

using System.Reflection;

string elMetodo = "Agregar()";
MethodInfo mi = this.GetType().GetMethod(elMetodo);
mi.Invoke(this, new object[]{});
Respuesta Responder a este mensaje
#2 Ariel Popovsky
18/10/2005 - 18:25 | Informe spam
Hola Benton,

No hay una función tipo eval para hacer algo como eval("X."+metodo), pero
usando Reflection puedes invocar un método o propiedad dinámicamente.
Por ejemplo:
string metodo = "Agregar";
Type type = objeto.GetType();
type.InvokeMember(metodo , BindingFlags.InvokeMethod | BindingFlags.NonPublic
| BindingFlags.Public | BindingFlags.Instance, null, objeto, null);

En este caso invocaría el método agregar, sin parámetros sobre el objeto
que le paso. Hay muchas variantes pero supongo que te servirá para empezar
a investigar.

Saludos!
Ariel Popovsky
Buenos Aires, Argentina

Hola grupo,

Teniendo una variable string = "Agregar()", es posible ejecutar el
mtodo Agregar() definido en la clase?

Saludos,

-Benton

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida