如何在没有 IDispatch 的情况下创建 VB.NET COM 可见的接口?

问题描述

如果我创建了一个 COM 可见的 VB.NET 接口,例如:

<ComVisible(True)>
Public Interface IMyInterface
    Sub MyMethod()
End Interface

然后生成的类型库将显示 IMyInterface 继承 Idispatch。有没有办法只继承 IUnkNown 而不是 Idispatch

解决方法

像这样使用 InterfaceTypeAttribute Class

<ComVisible(True),InterfaceType(ComInterfaceType.InterfaceIsIUnknown)> _
Public Interface IMyInterface
    Sub MyMethod()
End Interface