vb.net com vb6 com-interop vb6-migration

vb.net - ¿Puedo hacer una función COM solo?(Opuesto a<Runtime.InteropServices.ComVisible(False)>)



vb6 com-interop (1)

Es posible que pueda lograr lo que desea mediante el uso de la Implementación de interfaz explícita . Puede declarar una interfaz que será utilizada por clientes COM y otra para clientes .NET, dejando todos los métodos privados en su clase de implementación. El código puede verse así:

Imports System.Runtime.InteropServices Public Interface ITestInterface <ComVisible(True)> _ Sub MyTestMethod() End Interface <ComVisible(True)> _ Public Class TestClass Implements ITestInterface Private Sub MyTestMethod() Implements ITestInterface.MyTestMethod End Sub End Class


Debo decir que no entiendo lo que quieres decir con: "De esta manera puedo usar los métodos compartidos para el lado de .NET evitando la necesidad de una declaración de instancia".

Tengo algunas funciones en mi DLL VB.NET que puedo ''ocultar'' desde mi aplicación VB6 usando lo siguiente:

<Runtime.InteropServices.ComVisible(False)> _

¿Pero hay una manera de hacer que una función SÓLO sea visible para los clientes COM y no para los ensamblados .NET?

De esta forma puedo usar métodos Compartidos para el lado .NET evitando la necesidad de una declaración de instancia.