VB.NET:Get";“类”;从对象类型

VB.NET:Get";“类”;从对象类型,.net,vb.net,class,generics,types,.net,Vb.net,Class,Generics,Types,例如: Dim myFoo as FooClass() Dim fooType = myFoo.GetType() 'This is how it's normally done... Dim myList as List(Of FooClass) = nothing 'I need to basically do something like this Dim myOtherList as List(Of fooType) = nothing 基本上,我正在尝试根据类型动态创建一个泛型对

例如:

Dim myFoo as FooClass()
Dim fooType = myFoo.GetType()

'This is how it's normally done...
Dim myList as List(Of FooClass) = nothing

'I need to basically do something like this
Dim myOtherList as List(Of fooType) = nothing
基本上,我正在尝试根据类型动态创建一个泛型对象。有办法做到这一点吗

谢谢,
萨姆。

几天前,我遇到了几乎相同的问题

它可以通过反射来解决

见此:


你想做什么
T
需要是编译器定义的类型,而不是稍后确定的类型。(而且,
=没有什么是多余的)我实际上试图做的是在实体框架中自动映射实体。所有实体都实现一个特定的接口。因此,我从程序集中获取所有类型,并找到具有该接口的类型。然后,我想自动将它们映射到相应的表名。正如Proputix所说,必须在编译时知道变量的类型,因此您最好将myOtherList设置为IList(非泛型),并在运行时使用反射创建和实例
List(fooType)
(可能应该加上-AFAIK-因为有时候我知道的不多!)你不需要一个泛型。你可以把列表列成一个列表(对象),但最好的解决方案可能是把它列成一个列表(isSpecificInterface)因为你说你正在寻找实现特定接口的类型。是的,我尝试了接口部分…它不起作用,因为实体框架无法从中推断出类。它需要实际的类来将实体映射到数据库。但这不是一回事…我不需要对象的实际实例…我需要“阶级”为泛型构造函数键入。为什么不启动一个
object
类型的对象?或者创建某个类的继承?听起来你可以用这种方式解决这个问题。试着跳出框框思考,而不是拘泥于你在这里陈述的概念。@Verdolino有趣的家伙。我没有问这个问题!不能接受答案…但如果答案是这样的话如果是我的话,我会接受它而不去读:)@Verdolino-我们都是人。。尽管我们的一些中东邻国和我们本国的一些极端分子忘记了这一点