2

当我尝试VB.NET通过 interop in 创建对象时VB6,我注意到如果我的VB.NET类没有构造函数,我会收到此错误:

错误 430 - 类不支持自动化

我所要做的就是在VB.NET类中放置一个空的构造函数,例如:

Public Sub New()

End Sub

并且避免了错误。这是预期的行为吗?

4

1 回答 1

2

VB6 通过 COM 创建对象,使用 COM coclass 的类工厂。底层方法是 IClassFactory::CreateInstance()。此方法不允许将任何参数传递给工厂。因此,[ComVisible] .NET 类必须有一个不带任何参数的构造函数。

.NET 已经为一个类创建了一个默认构造函数,除非您自己指定一个带参数的构造函数。永远不会使用的,您不妨将其删除。现在您也不再需要空的默认构造函数了。

于 2012-11-15T14:53:19.303 回答