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.