通过反射实例化一个通用类/类型名(Instantiating a generic class thr

2019-09-22 11:05发布

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

public class Repository<T>
{
    public IEnumerable<T> FindAll()
    {
        //
    }
}

我希望能够做的,是通过创建一个反射库的一个实例。

例如:

var typeName = "Customer"
var type = Assembly.GetCallingAssembly().GetType(typeName);

//obviously, this isn't valid...
var repository = new Repoistory<type>();

沿着这些线路可能的东西吗?

Answer 1:

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


文章来源: Instantiating a generic class through reflection / typename