El destino de una invocación ha lanzado una excepción (MethodBase.Invoke Method)

Quiero captar las excepciones que se lanzan en los métodos llamados con el método invoke.

public void TestMethod()
{
   try     
   {
       method.Invoke(commandHandler, new[] { newCommand });
   }
   catch(Exception e)
   {     
       ExceptionService.SendException(e);
   }
}

invoque el siguiente método:

public void Register(/*parameters*/)
{
     if(test_condition())
          throw new CustomException("Exception Message");
}

El problema es que cuando atrapo la CustomException, en TestMethod, la variable e en la instrucción catch NO tiene el tipo CustomException. Tiene el siguiente mensaje: "El destino de una invocación ha lanzado una excepción".

Quiero detectar la excepción que se ha generado (que es CustomException) y pasarla al mecanismo ExceptionService.

¿Qué estoy haciendo mal?

Respuestas a la pregunta(1)

Su respuesta a la pregunta