我有一个包含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()
有什么想法吗?
谢谢!
答案 0 :(得分:1)
每个程序集(通常是项目)存储类型。 GetExecutingAssembly始终引用当前正在执行的代码所属的程序集。如果要从不同的程序集创建类型的实例,则需要引用该程序集,或者从该程序集内部调用GetExecutingAssembly。
您可以使用'Assembly.Load'来获取对程序集的引用(即使它已经加载)并在其上调用'.CreateInstance'。