How can we expose a .NET public const to COM interop
- by JulienC
For historical reasons, we need to expose string constants in .NET through COM interface.
We managed to expose ENUM but we can't find a way to expose string const.
We try the following code :
<ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)> _
Public Class ComClass1
#Region "COM GUIDs"
' These GUIDs provide the COM identity for this class
' and its COM interfaces. If you change them, existing
' clients will no longer be able to access the class.
Public Const ClassId As String = "608c6545-977e-4260-a3cf-11545c82906a"
Public Const InterfaceId As String = "12b8a6c7-e7f6-4022-becd-2efd8b3a756e"
Public Const EventsId As String = "05a2856f-d877-4673-8ea8-20f5a9f268d5"
#End Region
' A creatable COM class must have a Public Sub New()
' with no parameters, otherwise, the class will not be
' registered in the COM registry and cannot be created
' via CreateObject.
Public Sub New()
MyBase.New()
End Sub
Public Const chaine As String = "TEST"
Public Sub Method()
End Sub
End Class
But when we look on the OLE object viewer, we only see the method.
See ScreenShot: screenshot of OLE viewer
Anyone have an idea ?
Thanks,