Personnalisation de wrappers standard

Cette rubrique décrit les processus que vous appliquez pour personnaliser les wrappers RCW (Runtime Callable Wrapper) standard et les wrappers CCW (COM Callable Wrapper).

Wrappers RCW (Runtime Callable Wrapper)

Quand un client .NET active un objet COM, le runtime génère une instance du wrapper RCW (Runtime Callable Wrapper) afin d'envelopper le type COM. Comme le montre l'illustration suivante, le runtime utilise les métadonnées obtenues à partir d'une bibliothèque de types COM importée pour générer le wrapper RCW. Le wrapper marshale les données selon les règles établies par le service marshaling d'interopérabilité.

Génération de wrapper RCW et appels de méthodes

Personnalisation de wrappers standard

Il existe deux façons de personnaliser un wrapper RCW. Si vous pouvez modifier la source du langage de définition d'interface (IDL, Interface Definition Language), vous pouvez appliquer les attributs du fichier bibliothèque de types (TLB, Type Library File) et importer la bibliothèque de types. Vous pouvez également appliquer des attributs spécifiques à l'interopérabilité à des types importés et générer un nouvel assembly. La prise en charge de la personnalisation de wrappers RCW standard est limitée par ces attributs. Pour obtenir des instructions, consultez Comment : personnaliser les wrappers RCW (Runtime Callable Wrapper).

Wrappers CCW (COM Callable Wrapper)

Un wrapper CCW (COM Callable Wrapper) expose des objets .NET Framework à COM. En compilant un projet managé dans une DLL de l'assembly, vous créez automatiquement les métadonnées requises pour décrire chaque type dans l'assembly. Le runtime utilise ces métadonnées pour générer un wrapper CCW chaque fois qu'un client COM active un objet managé.

Pour personnaliser un wrapper CCW, appliquez des attributs spécifiques à l'interopérabilité à votre code source managé et compilez la source dans un assembly, comme le montre l'illustration suivante. Dans cet exemple, Tlbexp.exe convertit les types managés en COM.

Génération d'un wrapper CCW et appels de méthodes

Personnalisation de wrappers standard

En appliquant des attributs à votre code, vous pouvez modifier le comportement de marshaling des données et de l'interface dans les limites du service marshaling d'interopérabilité. Par exemple, vous pouvez déterminer le format des données passées en tant qu'argument à une méthode. Vous pouvez également déterminer les types d'un assembly qui sont exposés à COM.

Voir aussi

Tâches

Comment : personnaliser les wrappers RCW (Runtime Callable Wrapper)

Référence

Tlbimp.exe (Type Library Importer)

Ildasm.exe (Désassembleur MSIL)

Concepts

Wrappers COM

Wrapper pouvant être appelé par le runtime

Wrapper pouvant être appelé par COM

Application d'attributs d'interopérabilité

Autres ressources

Résumé de la conversion d'une bibliothèque de types en assembly

Résumé de la conversion d'un assembly en bibliothèque de types