2015-10-15 60 views
1

以下是我需要做的事情;從字符串變量創建對類的引用

string className = "Customer"; 
List<className> myList = new List<className>(); 

className可以是我的任何實體框架類。我僅以客戶爲例。

我希望這是可能的。如果是這樣,怎麼樣?

UPDATE:

我還需要使用這種方法從一個實體框架的DbContext檢索數據。例如...

 string className = "Customer"; 
     var myData = db.Set<className>(); 

對不起。不知道我是否應該在此創建另一個問題或更新此問題。對我溫柔。我是新來的。 :o)

+1

使用反射! –

+5

你爲什麼需要這個?如果你有這樣的要求,在99.999%的案例中你知道你使用了錯誤的方法。 –

+0

@Nikita你能舉個例子嗎?謝謝。 –

回答

4

如果你想在這種情況下可以使用反射,但我會考慮另一種解決方案。

Type type = Type.GetType("Namespace.ClassName"); 
Type listType = typeof(List<>).MakeGenericType(new [] { type }); 
IList list = (IList)Activator.CreateInstance(listType); 
+0

檢查這個答案!多數民衆贊成你如何使用反射。 –

1

您可以使用:

Type customerType = Type.GetType("this.is.a.namespace.Customer"); 

相關:other question