J'ai un assembly géré qui est appelé via COM Interop. Comme un client VBScript, un client Perl, etc.Est-il possible d'exposer un C# Enum aux appelants COM Interop, et si oui, comment?
Les classes sont décorées avec
[ClassInterface(ClassInterfaceType.AutoDual)]
[GuidAttribute("ebc25cf6-9120-4283-b972-0e5520d0000E")]
[ComVisible(true)]
Alors bien sûr, je fais la chose regasm, et toutes les méthodes fonctionnent très bien.
Mais il existe également des types enum dans l'assemblage. Je voudrais utiliser des applications COM de noms symboliques, pour les valeurs enum.
Comment exposer les énumérations via COM interop? Ai-je juste besoin d'ajouter ces attributs?
[GuidAttribute("ebc25cf6-9120-4283-b972-0e5520d0000E")]
[ComVisible(true)]
Et puis, comment puis-je référencer ces noms symboliques dans VBScript? Je ne vois pas les types enum dans OleView. (Dois-je?) Je vois tous les autres types dans OleView. VBScript et d'autres clients liés en retard utilisent IDispatch pour appeler des méthodes sur des objets.
bonne réponse. cet outil semble très utile. – Cheeso
Malheureusement, je n'ai pas de générateur constant pour Perl ... Peut-être qu'il est temps de reprendre le développement :-) –