Pour des raisons historiques, nous devons exposer les constantes de chaîne dans .NET via l'interface COM.Comment pouvons-nous exposer un const public .NET à COM interop
Nous avons réussi à exposer ENUM mais nous ne pouvons pas trouver un moyen d'exposer la chaîne const.
Nous essayons le code suivant:
<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
Mais quand on regarde le spectateur de l'objet OLE, nous ne voyons que la méthode.
Quelqu'un a une idée?
Merci,
Nous avons pensé à cela aussi, le seul problème est que nous voulons "montrer" la valeur de la constante de l'autre côté. – JulienC
Vous ne savez pas exactement ce que vous voulez dire avec le mot "show" car si vous renvoyez la valeur dans un getter, l'autre côté pourrait le voir? Ajout d'un lien sur lequel j'ai trébuché qui pourrait être utile même si c'est pour VB6. –
+1 Je pense que cela peut être une limitation COM - pas de constantes de chaînes publiques. Quelqu'un sait-il? – MarkJ