通过reflection / typename实例化泛型类

时间:2012-09-14 11:30:55

标签: c# generics reflection

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

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>();

这些方面的内容是否可能?

1 个答案:

答案 0 :(得分:1)

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