在不同的项目中使用CreateInstance进行类

时间:2014-11-03 17:54:47

标签: asp.net vb.net reflection

我有一个包含3个项目的解决方案。在project1中,当我引用 local 项目中的类时,CreateInstance工作正常。

Dim oo As New Object = Assembly.GetExecutingAssembly().CreateInstance("TestClass", True)
oo.TestSub()

但是当它进入其他一个项目时,它会返回"没有什么"。

Dim oo As New Object = Assembly.GetExecutingAssembly().CreateInstance("Project2.Business.TestClass", True)
oo.TestSub()

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

每个程序集(通常是项目)存储类型。 GetExecutingAssembly始终引用当前正在执行的代码所属的程序集。如果要从不同的程序集创建类型的实例,则需要引用该程序集,或者从该程序集内部调用GetExecutingAssembly。

您可以使用'Assembly.Load'来获取对程序集的引用(即使它已经加载)并在其上调用'.CreateInstance'。