2015-10-15 58 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