I cannot find a way to use a first-class Type object (System.Type instance) as a Type Parameter in a generic construction in C# 3.0 / .NET 3.5. Below is a simplified example
You're trying to determine your type argument at runtime. .Net generics require that the type arguments are known at compile time. There's really no way to do that outside of switching on the type. You may be able to get a handle to the method via reflection and invoke it, but that's ugly.