Transfert de type (C++-CLI)
Le transfert de type vous permet de déplacer un type à partir d’un assembly (assembly A) dans un autre assembly (assembly B), afin qu’il ne soit pas nécessaire de recompiler les clients qui utilisent l’assembly A.
Windows Runtime
Cette fonctionnalité n’est pas prise en charge dans Windows Runtime.
Common Language Runtime
L’exemple de code suivant illustre l’utilisation du transfert de type.
Syntaxe
#using "new.dll"
[assembly:TypeForwardedTo(type::typeid)];
Paramètres
nouveau
L’assembly dans lequel vous déplacez la définition de type.
type
Le type dont vous déplacez la définition dans un autre assembly.
Notes
Une fois un composant (assembly) livré et utilisé par les applications clientes, vous pouvez utiliser le transfert de type pour déplacer un type depuis le composant (assembly) vers un autre assembly, fournir le composant mis à jour (et les autres assemblys requis), et les applications clientes continueront de fonctionner sans être recompilées.
Le transfert de type fonctionne uniquement pour les composants référencés par les applications existantes. Lors de la reconstruction d’une application, il doit exister des références d’assembly appropriées pour tous les types utilisés dans l’application.
Lorsque vous transférez un type (Type A) à partir d’un assembly, vous devez ajouter l’attribut TypeForwardedTo
pour ce type, ainsi qu’une référence d’assembly. L’assembly que vous référencez doit contenir un des éléments suivants :
La définition du Type A.
Un attribut
TypeForwardedTo
du Type A, ainsi qu’une référence d’assembly.
Voici quelques exemples de types qui peuvent être transférés :
les classes de référence
les classes de valeur
enums
interfaces
Vous ne pouvez pas transférer les types suivants :
Types génériques
Types natifs
Types imbriqués (si vous souhaitez transférer un type imbriqué, vous devez transférer le type englobant)
Vous pouvez transférer un type vers un assembly créé dans n’importe quel langage ciblant le common language runtime.
Par conséquent, si un fichier de code source qui est utilisé pour générer l’assembly A.dll contient une définition de type (ref class MyClass
), et que vous voulez déplacer ce type de définition de l’assembly B.dll, vous le feriez pour :
Déplacez la définition du type
MyClass
dans un fichier de code source utilisé pour générer B.dll.Générer l’assembly B.dll
Supprimez la définition du type
MyClass
du code source utilisé pour générer A.dll, et remplacez-la par :#using "B.dll" [assembly:TypeForwardedTo(MyClass::typeid)];
Générez l’assembly A.dll.
Utilisez A.dll sans recompiler les applications clientes.
Spécifications
Option du compilateur : /clr