Je prévois d'utiliser divers objets qui sont exposés en tant qu'objets COM. Pour les rendre plus faciles à utiliser, je voudrais les encapsuler comme des objets C #. Quelle est la meilleure approche pour cela?
Si la bibliothèque est déjà enregistrée, vous pouvez effectuer les étapes suivantes pour que Visual Studio génère un assembly d'interopérabilité pour vous:
Ce sera une classe ou un ensemble de classes C # qui encapsulent tous les éléments de l'interface COM avec une classe C # normale. Ensuite, vous l'utilisez comme n'importe quelle autre bibliothèque C #. Si l'importation de la référence a bien fonctionné, vous pouvez l'explorer comme n'importe quelle autre référence et les méthodes/structures/classes/constantes devraient apparaître dans cet espace de noms et intellisense.
Cela vous permettra de démarrer, au moins. Si cela est déployé dans un environnement d'entreprise ou que vous pouvez contrôler, cela peut être tout ce dont vous avez besoin.
Il y a un bon article de MSDN à ce sujet, qui explique le code managé et non managé et vous explique étape par étape comment le faire. http://msdn.Microsoft.com/en-us/library/ms973800.aspx#
S'amuser!
Vous pouvez (initialement) simplement importer la référence. Si vous avez besoin de plus de contrôle (ou obtenez des erreurs de l'importation de VS), vous pouvez utiliser tlbimp dans le sdk de Windows. Cela créera les assemblys d'interopérabilité. Vous pouvez obtenir des définitions de classe à partir de métadonnées.
EDIT: C'est en fait beaucoup plus compliqué si vous voulez travailler avec 64 bits