Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’espace System.Runtime.InteropServices de noms fournit trois catégories d’attributs spécifiques à l’interopérabilité : ceux appliqués par vous au moment du design, ceux appliqués par les outils et API COM interop pendant le processus de conversion, et ceux appliqués par vous ou COM Interop.
Si vous ne connaissez pas la tâche d’appliquer des attributs au code managé, consultez Extension des métadonnées à l’aide d’attributs. Comme d’autres attributs personnalisés, vous pouvez appliquer des attributs spécifiques à l’interopérabilité aux types, méthodes, propriétés, paramètres, champs et autres membres.
Attributs au moment du design
Vous pouvez ajuster le résultat du processus de conversion effectué par les outils et API COM Interop à l’aide d’attributs au moment du design. Le tableau suivant décrit les attributs que vous pouvez appliquer à votre code source managé. Les outils COM Interop, à l’occasion, peuvent également appliquer les attributs décrits dans ce tableau.
| Caractéristique | Descriptif |
|---|---|
| AutomationProxyAttribute | Spécifie si le type doit être marshalé à l’aide du marshaler Automation ou d’un proxy et d’un stub personnalisés. |
| ClassInterfaceAttribute | Contrôle le type d’interface généré pour une classe. |
| CoClassAttribute | Identifie le CLSID de la coclasse d’origine importée à partir d’une bibliothèque de types. Les outils d’interopérabilité COM appliquent généralement cet attribut. |
| ComImportAttribute | Indique qu’une définition de coclasse ou d’interface a été importée à partir d’une bibliothèque de types COM. Le runtime utilise cet indicateur pour savoir comment activer et marshaler le type. Cet attribut empêche l’exportation du type vers une bibliothèque de types. Les outils d’interopérabilité COM appliquent généralement cet attribut. |
| ComRegisterFunctionAttribute | Indique qu’une méthode doit être appelée lorsque l’assembly est inscrit pour une utilisation à partir de COM, afin que le code écrit par l’utilisateur puisse être exécuté pendant le processus d’inscription. |
| ComSourceInterfacesAttribute | Identifie les interfaces qui sont des sources d’événements pour la classe. Les outils COM Interop peuvent appliquer cet attribut. |
| ComUnregisterFunctionAttribute | Indique qu'une méthode doit être appelée lorsque l'assembly est désinscrit de COM, afin que le code écrit par l'utilisateur puisse s'exécuter pendant le processus. |
| ComVisibleAttribute | Affiche les types invisibles dans COM lorsque la valeur de l’attribut est false. Cet attribut peut être appliqué à un type individuel ou à un assembly entier pour contrôler la visibilité COM. Par défaut, tous les types publics gérés sont visibles ; l’attribut n’est pas nécessaire pour les rendre visibles. |
| DispIdAttribute | Spécifie l’identificateur de distribution COM (DISPID) d’une méthode ou d’un champ. Cet attribut contient le DISPID pour la méthode, le champ ou la propriété qu’il décrit. Les outils COM Interop peuvent appliquer cet attribut. |
| ComDefaultInterfaceAttribute | Indique l’interface par défaut d’une classe COM implémentée dans .NET. Les outils COM Interop peuvent appliquer cet attribut. |
| FieldOffsetAttribute | Indique la position physique de chaque champ dans une classe lorsqu’il est utilisé avec StructLayoutAttribute et que LayoutKind est défini sur Explicit. |
| GuidAttribute | Spécifie l’identificateur global unique (GUID) d’une classe, d’une interface ou d’une bibliothèque de types entière. La chaîne transmise à l’attribut doit être un format qui est un argument de constructeur acceptable pour le type System.Guid. Les outils COM Interop peuvent appliquer cet attribut. |
| IDispatchImplAttribute | Indique l’implémentation de l’interface IDispatch utilisée par le Common Language Runtime lors de l’exposition d’interfaces doubles et de dispinterfaces à COM. |
| InAttribute | Indique que les données doivent être marshalées vers l’appelant. Peut être utilisé pour les paramètres d’attribut. |
| InterfaceTypeAttribute | Contrôle la façon dont une interface managée est exposée aux clients COM (double, dérivé d’IUnknown ou IDispatch uniquement). Les outils COM Interop peuvent appliquer cet attribut. |
| LCIDConversionAttribute | Indique qu’une signature de méthode non managée attend un paramètre LCID. Les outils COM Interop peuvent appliquer cet attribut. |
| MarshalAsAttribute | Indique comment les données dans les champs ou les paramètres doivent être marshalées entre le code managé et non managé. L’attribut est toujours facultatif, car chaque type de données a un comportement de marshaling par défaut. Les outils COM Interop peuvent appliquer cet attribut. |
| OptionalAttribute | Indique qu’un paramètre est facultatif. Les outils COM Interop peuvent appliquer cet attribut. |
| OutAttribute | Indique que les données d’un champ ou d’un paramètre doivent être marshalées d’un objet appelé vers son appelant. |
| PreserveSigAttribute | Supprime la transformation de la signature HRESULT ou retval qui s’effectue normalement au cours des appels d’interopérabilité. L’attribut affecte le marshaling ainsi que l’exportation de la bibliothèque de types. Les outils COM Interop peuvent appliquer cet attribut. |
| ProgIdAttribute | Spécifie le ProgID d’une classe .NET. Peut être utilisé pour les classes d’attributs. |
| StructLayoutAttribute | Contrôle la disposition physique des champs d’une classe. Les outils COM Interop peuvent appliquer cet attribut. |
Attributs d’outils de conversion
Le tableau suivant décrit les attributs que les outils d'interopérabilité COM appliquent pendant le processus de conversion. Vous n’appliquez pas ces attributs au moment du design.
| Caractéristique | Descriptif |
|---|---|
| ComAliasNameAttribute | Indique l’alias COM d’un paramètre ou d’un type de champ. Peut être utilisé pour attribuer des paramètres, des champs ou des valeurs de retour. |
| ComConversionLossAttribute | Indique que des informations sur une classe ou une interface ont été perdues lorsqu’elles ont été importées d’une bibliothèque de types vers un assembly. |
| ComEventInterfaceAttribute | Identifie l’interface source et la classe qui implémente les méthodes de l’interface d’événement. |
| ImportedFromTypeLibAttribute | Indique que l’assembly a été importé à l’origine à partir d’une bibliothèque de types COM. Cet attribut contient la définition de la bibliothèque de types d’origine. |
| TypeLibFuncAttribute | Contient les FUNCFLAGS qui ont été importés à l’origine pour cette fonction à partir de la bibliothèque de types COM. |
| TypeLibTypeAttribute | Contient les TYPEFLAGS qui ont été importés à l’origine pour ce type à partir de la bibliothèque de types COM. |
| TypeLibVarAttribute | Contient les VARFLAGS qui ont été importés à l’origine pour cette variable à partir de la bibliothèque de types COM. |