Instruir a un genérico para que devuelva un objeto de tipo dinámico

Esta pregunta es una especie de seguimiento de mi pregunta originalaquí.

Digamos que tengo la siguiente clase genérica (¡simplificando! ^ _ ^):

class CasterClass<T> where T : class
{
    public CasterClass() { /* none */ }
    public T Cast(object obj)
    {
        return (obj as T);
    }
}

Que tiene la capacidad de convertir un objeto en un tipo específico.

Desafortunadamente, en tiempo de compilación, no tengo el lujo de saber con qué tipos exactamente tendré que trabajar, así que tendré que instanciar esta clase a través de la reflexión, así:

Type t = typeof(castedObject);

// creating the reflected Caster object
object CasterObj = Activator.CreateInstance(
    typeof(CasterClass<>).MakeGenericType(t)
);

// creating a reflection of the CasterClass' Cast method
MethodInfo mi = typeof(CasterClass<>).GetMethod("Cast");

El problema es que, una vez que llamo al método usando mi.Invoke (), devolverá un resultado con tipo de objeto, en lugar de la instancia de T con un tipo específico (debido a la reflexión).

¿Hay alguna manera de hacer que un método invocado a través de la reflexión devuelva un tipo dinámico, como se ilustra arriba? Estoy bastante seguro de que .NET 3.5 no tiene las facilidades para convertir en un tipo dinámico (o más bien, sería muy poco práctico).

¡Muchas gracias!

Respuestas a la pregunta(2)

Su respuesta a la pregunta