personnaliser des wrappers pouvant être appelés par le runtime
Le Common Language Runtime produit un wrapper RCW (Runtime Callable Wrapper) à partir des métadonnées dans un assembly d'interopérabilité. Contrairement à d'autres assemblys, les assemblys d'interopérabilité sont générés en important des bibliothèques de types. Bien que le processus d'importation produise généralement des assemblys d'interopérabilité exacts, il y a des cas où vous pouvez (ou devez) modifier l'assembly d'interopérabilité pour produire un wrapper RCW personnalisé.
Vous pouvez vouloir personnaliser un wrapper RCW pour plusieurs raisons :
Un ou plusieurs types nécessitent des informations de marshaling supplémentaires.
Une bibliothèque de types contient plusieurs types spécifiques que le marshaleur ne reconnaît pas.
Une large bibliothèque de types peut inclure des types qui ne sont pas nécessaires à une application. Vous pouvez supprimer le besoin de déployer des types superflus en créant un assembly d'interopérabilité à partir du code source managé.
Si vous disposez de code source RCW contenant une portion des types dans une large bibliothèque de types, vous n'aurez pas besoin de déployer des types superflus.
Comme le montre l'illustration suivante, vous pouvez importer une bibliothèque de types comme DLL managée sans personnaliser le wrapper (qui apparaît sur la gauche). Ou vous pouvez créer un wrapper personnalisé.
Informations de marshaling dans des bibliothèques de types importées
Si vous devez personnaliser le wrapper RCW (Runtime Callable Wrapper) à l'aide d'instructions de marshaling supplémentaires ou différentes, les deux choix suivants s'offrent à vous :
Édition d'un assembly d'interopérabilité, rechercher la syntaxe problématique et la remplacer par une autre syntaxe. Cette option est idéale pour les changements de marshaling mineurs.
Création manuelle d'un wrapper, basée sur une bibliothèque de types ou un fichier en langage de définition d'interface (IDL, Interface Definition Language) existant. La déclaration manuelle des types COM est une activité difficile nécessitant une connaissance pratique de Type Library Importer (Tlbimp.exe), du comportement par défaut du marshaleur d'interopérabilité, et de COM. Cette approche est idéale lorsque vous disposez d'une bibliothèque entière de types spécifiques ou que vous avez besoin du code source RCW.
Voir aussi
Tâches
Comment : modifier des assemblys d'interopérabilité
Comment : créer manuellement des wrappers
Concepts
personnaliser des wrappers pouvant être appelés par COM