2012-09-14 217 views
0

例如,我有一個類,看起來像:實例化通過反射泛型類/類型名稱

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

是沿着這些線路可能的東西嗎?

+0

這裏就是答案http://stackoverflow.com/questions/1151464/how-to-dynamically-create-generic-c-sharp-object-using-reflection – opewix

+0

'.GetType(串);'採用完整的類型名稱和命名空間。 http://msdn.microsoft.com/en-us/library/y0cd10tb.aspx –

回答

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