AddEventHandler utilizando la reflexión

Tengo este pedazo de código que no funciona:

public CartaoCidadao()
{
    InitializeComponent();

    object o = WebDAV.Classes.SCWatcher.LoadAssembly();
    MethodInfo method = 
        this.GetType().GetMethod("Inserted", 
                                 BindingFlags.NonPublic | BindingFlags.Instance);

    EventInfo eventInfo = o.GetType().GetEvent("CardInserted");
    Type type = eventInfo.EventHandlerType;
    Delegate handler = Delegate.CreateDelegate(type, this , method);

    eventInfo.AddEventHandler(o, handler);
}

void Inserted(string readerName, string cardName)
{
    System.Windows.Forms.MessageBox.Show(readerName);
}

El evento CardInserted existe en otro archivo DLL y el objeto "o" se carga correctamente. El controlador delegado tiene un valor después de efecto. Solo no puedo despedir el evento.

Respuestas a la pregunta(3)

Su respuesta a la pregunta