【发布时间】:2014-07-10 12:36:11
【问题描述】:
我正在使用typebuilder 在运行时创建一个类,在我创建这个类之后,我想为一个列表定义它的类型
dim fooList as new List(of DynamicClassName)
由于这在编译时不存在,所以它当然会引发错误。当我生成这种类型时,我会返回类型,所以我不能做类似的事情
dim newType = createNewType(foobar)
dim fooList as new List(of getType(newType))
如何在运行时分配 List 的类型?
【问题讨论】:
-
我还没有使用
TypeBuilder完成此操作,但是使用CodeDOM您可以拥有一个几乎空的MustInherit 类,动态类型从该类继承,然后将新对象添加到List(Of baseclassType)。否则,我想你只剩下List(Of Object) -
看到这个:stackoverflow.com/q/9053440/1070452 看起来它通常解决了同样的问题,可能有两种方式(
和基类方法)。看起来 TypeBuilder 比 CodeDOM、FWIW 更复杂和令人费解 -
实际上,我发现 FWIW IMO the difference between CodeDOM and TypeBuilder 相当可观。 CodeDOM 可以生成更多语言的代码,但 TypeBuilder 更强大。
标签: vb.net