从类名创建一个实例

3
我正在尝试在运行时创建一个类的实例。我要创建的所有类都继承自基类ConfigMgrObj,并命名为ConfigMgr_xxxxxx,例如ConfigMgr_Collection。它们都需要一个我称之为oController的特殊对象和一个字符串作为参数。
这是我用来执行此操作的代码行,其中ClassToGet是包含类名的字符串,例如ConfigMgr_Collection
object oNewObject = System.Activator.CreateInstance(null, "StackOverflowNamespace." + ClassToGet, new object[] { oController, ClassToGet });

这会抛出一个 TypeLoadException 异常。这是怎么回事呢?

你能详细说明一下你的问题吗?这个包含类型的程序集是否已加载? - undefined
2个回答

6

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


该死,就是这样。我忘记了我是在GUI中进行这个操作,虽然我的所有东西都在同一个命名空间但是不同的程序集中。请给我一个被接受的答案来弥补我的愚蠢。 - undefined

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接