2010-11-30 52 views
0

Supposons que: introduced a COM interface and don't want any third party to use it. J'ai un contrôle total sur les sources du composant COM et le fichier IDL qui contient la définition de l'interface. Mon composant COM aura besoin d'éléments de rassemblement pour cette interface, donc I'll need to either implement IMarshal or provide a typelib or provide a proxy/stub.Est-ce que proxy/stub expose l'interface?

Évidemment, si je fournis une typelib, n'importe qui peut l'inspecter et trouver ce qu'est mon interface et comment elle peut être utilisée. Ce n'est pas ce que je veux.

Que faire si j'utilise proxy/stub? Va-t-il exposer l'interface et laisser quelqu'un l'inspecter ou va-t-il cacher les détails de l'interface?

Répondre

1

Malheureusement, ce n'est pas possible. L'idée de COM est que les clients peuvent découvrir les composants et les interfaces.

Dans un emploi précédent, j'ai travaillé sur une application équipée de droits numériques et là, nous n'utilisions délibérément pas COM simplement pour rendre plus difficile l'accès à notre application. Nous devions construire notre propre infrastructure de composants (en plus d'autres mesures de sécurité).

+0

Je ne suis pas d'accord avec vous. S'il n'y a pas de rassemblement, il est trivial de consolider le fonctionnement interne en n'utilisant que la liaison anticipée. Le client n'aura donc pas besoin de connaître l'interface au moment de l'exécution. Nous faisons cela et cela fonctionne. – sharptooth