使用Type对象而不是T创建List <T>

Dan*_*ler 0 c# generics

我有一个名为LazyLoader <T>的对象.它连接到ORM以在需要时加载T类型的数据.有用.

LazyLoader <T>继承自ILazyLoader.

挑战:创建一个可以从Object类型加载Generic类型的工厂类.

如,

public ILazyLoader CreateLazyLoader(int id, Type typeToLoad)
{
    return new LazyListLoader<typeToLoad>(id);
}
Run Code Online (Sandbox Code Playgroud)

问题:<typeToLoad>不接受Type对象.如何将Type <typeToLoad>转换为类似<T>的东西,其中T是typeToLoad?

Lee*_*Lee 9

var llType = typeof(LazyListLoader<>).MakeGenericType(typeToLoad);
return (ILazyLoader)Activator.CreateInstance(llType, id);
Run Code Online (Sandbox Code Playgroud)