Cómo obtener el nombre del evento en el método llamado
Estoy utilizando la reflexión para agregar un controlador de eventos a un evento:
var eventInfo = type.GetEvent(eventName);
MethodInfo mi = GetType().GetMethod("TestMethod",
BindingFlags.Instance | BindingFlags.NonPublic);
var delegateForMethod = Delegate.CreateDelegate(eventInfo.EventHandlerType, this, mi);
eventInfo.AddEventHandler(this, delegateForMethod);
Esto llama con éxito a mi método de prueba cuando ocurre el evento, lo cual es genial, pero ahora necesito saber el nombre del evento que terminó llamando a este método ...
void TestMethod(object sender, EventArgs e)
{
// I know the sender, but which event was fired on the sender?
}
La razón por la que necesito esto es porque tengo este método de registro genérico que conecta controladores de diferentes tipos y diferentes eventos y los canaliza a un solo método, al mismo tiempo que anoto lo que se adjuntó. Una vez que se activa el método de prueba, necesito sacar esa nota y usar la información para notificar al objeto correcto que su evento "deseado" se ha activado. - pero para saber esto necesito saber el nombre del evento, así como el tipo.
Por ejemplo, en el registro agregué el Evento A en el tipo X para el objeto O .... ahora, cuando lo veo activado en el método de prueba, necesito saber que fue el Evento A en el tipo X, por lo que puedo notificar el objeto O mediante una cierto método de interfaz en él.