2008-10-07 112 views
2

我试图在运行时创建一个类的实例。我试图创建的类都从基类ConfigMgrObj继承,并且被命名为ConfigMgr_xxxxxxConfigMgr_Collection。他们都采取了一个特殊的对象,我打电话给oController和一个字符串作为参数。从类名创建实例

这是我用来做的一行,其中ClassToGet是一个包含类的名字的字符串,例如ConfigMgr_Collection

object oNewObject = System.Activator.CreateInstance(null, "StackOverflowNamespace." + ClassToGet, new object[] { oController, ClassToGet }); 

这引发了TypeLoadException异常。这是怎么回事?

+0

你可以扩展你的问题,是包含类型加载的程序集? – 2008-10-07 03:43:27

回答

6

您尝试实例化的类型实际上是在同一个程序集中声明的吗?传递null作为第一个参数告诉Activator这些类型存在于当前程序集中。

+0

该死的,就是这样。我忘了我在GUI中这样做,我的所有东西都在同一个命名空间中,但是不同的程序集。有一个可以接受的答案来减轻我的愚蠢。 – Merus 2008-10-07 03:55:06

0

看起来它没有在当前程序集中找到名为"StackOverflowNamespace."+ClassToGet的类。