通过reflection / typename实例化generics类

例如,我有一个类,看起来像:

public class Repository { public IEnumerable FindAll() { // } } 

我希望能够做的是通过reflection创建一个Repository实例。

例如:

 var typeName = "Customer" var type = Assembly.GetCallingAssembly().GetType(typeName); //obviously, this isn't valid... var repository = new Repoistory(); 

沿着这些方向的事情可能吗?

 var repository = Activator.CreateInstance(typeof(Repository<>).MakeGenericType(type));