当我尝试通过 VB6
中的互操作创建 VB.NET
对象时,我注意到如果我的 VB.NET
会出现此错误> 类没有构造函数:
Error 430 - Class doesn't support automation
我所要做的就是在VB.NET
类中放置一个空的构造函数,例如:
Public Sub New()
End Sub
这样就避免了错误。这是预期的行为吗?
最佳答案
VB6 通过 COM 创建对象,使用 COM 组件类的类工厂。底层方法是 IClassFactory::CreateInstance()。此方法不允许将任何参数传递给工厂。因此,[ComVisible] .NET 类必须有一个不带任何参数的构造函数。
.NET 已经为类创建了默认构造函数,除非您自己指定一个带有参数的构造函数。永远不会使用的,你最好将其删除。现在您也不再需要空的默认构造函数。
关于vb.net - 通过互操作在 VB6 中使用 VB.NET 类需要类具有构造函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13399001/