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.

Respuestas a la pregunta(2)

Su respuesta a la pregunta