2014-11-03 66 views
0

我有3个项目的解决方案。在项目1中,当我参考当地中的一个类时,项目CreateInstance可以正常工作。在不同的项目中使用CreateInstance作为类

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

但是,当它在其中一个项目中时,它返回“Nothing”。

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

任何想法?

谢谢!

+0

类型按组件存储(通常是一个项目)。 GetExecutingAssembly始终引用当前正在执行的代码所属的程序集。如果你想创建一个类型为Froma的实例,你将需要对THAT程序集的引用,或者从该程序集中调用GetExecutingAssembly。 – 2014-11-03 17:57:08

回答

1

类型按组件存储(通常是一个项目)。 GetExecutingAssembly始终引用当前正在执行的代码所属的程序集。如果你想创建一个类型为Froma的实例,你将需要对THAT程序集的引用,或者从该程序集中调用GetExecutingAssembly。

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

相关问题