Interceptar el método asíncrono que devuelve la Tarea genérica <> a través de DynamicProxy

Mis preguntas están relacionadas con esta publicación.Intercepte la llamada a un método asíncrono utilizando DynamicProxy

Quiero implementar el interceptor que funciona con métodos asíncronos que devuelveTask&nbsp;oTask<T>&nbsp;resultado.

Yo uso el siguiente código para volverContinueWith&nbsp;resultado (para que el método de llamada espere mientras el interceptor termina de funcionar)

var task = invocation.ReturnValue as Task;
invocation.ReturnValue = task.ContinueWith(c => 
      { code that should execute after method finish });

El código anterior funciona bien paraTask&nbsp;resultado, pero en caso deTask<T>&nbsp;resultadoContinueWith&nbsp;cambiará el tipo de retorno deTask<T>&nbsp;aTask. Necesito llamar al método sobrecargado ContinueWith que devuelveTask<T>, pero para esto necesito lanzarinvocation.ReturnValue&nbsp;aTask<T>

No encontré la manera de lanzarlo dinámicamente de ninguna manera. ¿Alguien sabe cómo hacerlo?

También intenté llamar a este método a través de la reflexión, pero el parámetro es la función labmda que no se puede pasar directamente.