Crear delegados a partir de un string
Tengo una "pequeña" duda, necesito asignarle a un Objeto un evento que tengo en un string, y que tambien lo gestione un metodo que tambien lo tengo en un string. la cosa esta retorcida, seria para que se entendiese algo por el estilo a esto, pero que funcione.
Delegate void MiDelegado();
void Asigna(){
string Evento = "Click";
string TipoDelegado = "MiDelegado";
string Metodo = "MetodoControlador";
Objeto. "Evento" += new "TipoDelegado"( "Metodo" );
}
void MetodoControlador(){
MessageBox.Show("Ole que paranoia!");
}
Esta claro que esto no funciona ni a la de tres pero creo que asi se me entiende mejor, usando la imaginacion tenemos en varios string el evento a establecer, el tipo del delegado y el metodo controlador, ¿Como se hace para que funcione?
He intentado usar lo del Assambly ese, creo que los tipos iran por ahi, pero no encuentro nada en internet, por favor que alguien me eche una mano
Muchisimas gracias de antemano!!
Delegate void MiDelegado();
void Asigna(){
string Evento = "Click";
string TipoDelegado = "MiDelegado";
string Metodo = "MetodoControlador";
Objeto. "Evento" += new "TipoDelegado"( "Metodo" );
}
void MetodoControlador(){
MessageBox.Show("Ole que paranoia!");
}
Esta claro que esto no funciona ni a la de tres pero creo que asi se me entiende mejor, usando la imaginacion tenemos en varios string el evento a establecer, el tipo del delegado y el metodo controlador, ¿Como se hace para que funcione?
He intentado usar lo del Assambly ese, creo que los tipos iran por ahi, pero no encuentro nada en internet, por favor que alguien me eche una mano
Muchisimas gracias de antemano!!
Que pena tener que responderse uno a si mismo.
Aqui esta la solucion:
object Ctr = (object)LoadControl(Nombre + ".ascx");
Type Tipo = Ctr.GetType();
EventInfo Evento = Tipo.GetEvent("Click);
Type Destino = this.Parent.Parent.GetType();
MethodInfo Metodo = Destino.Module.GetType(Destino.BaseType.FullName).GetMethod("Boton_Click");
Delegate Del = Delegate.CreateDelegate(Evento.EventHandlerType, this.Parent.Parent, Metodo);
Evento.AddEventHandler(Ctr, Del);
Aqui esta la solucion:
object Ctr = (object)LoadControl(Nombre + ".ascx");
Type Tipo = Ctr.GetType();
EventInfo Evento = Tipo.GetEvent("Click);
Type Destino = this.Parent.Parent.GetType();
MethodInfo Metodo = Destino.Module.GetType(Destino.BaseType.FullName).GetMethod("Boton_Click");
Delegate Del = Delegate.CreateDelegate(Evento.EventHandlerType, this.Parent.Parent, Metodo);
Evento.AddEventHandler(Ctr, Del);