CreationPolicy Énumération
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Spécifie le moment et la manière dont un composant est instancié.
public enum class CreationPolicy
public enum CreationPolicy
type CreationPolicy =
Public Enum CreationPolicy
- Héritage
Champs
Any | 0 | Spécifie que CompositionContainer utilise le CreationPolicy le plus approprié pour le composant, étant donné le contexte actuel. Il s'agit du CreationPolicy par défaut. Par défaut, CompositionContainer utilise Shared, à moins que ComposablePart ou l'importateur ne demande NonShared. |
NonShared | 2 | Spécifie qu'une nouvelle instance non partagée du ComposablePart associé est créée par CompositionContainer pour chaque demandeur. |
Shared | 1 | Spécifie qu'une instance partagée unique du ComposablePart associé est créée par CompositionContainer et partagée par tous les demandeurs. |
Remarques
Au cours de la composition, le CompositionContainer a besoin d’instances des objets décrits par les exportations pour remplir les importations. Si une seule exportation est utilisée pour remplir plusieurs importations, il existe deux comportements possibles. Soit une seule instance de l’objet exporté est créée et une référence au même objet est donnée à chaque importateur, soit une instance distincte de l’objet exporté est créée pour chaque importateur.
Le comportement qui se produit dépend de la CreationPolicy propriété du PartCreationPolicyAttribute attaché à l’exportation et du RequiredCreationPolicy .ImportAttribute Les deux contiennent une valeur de l’énumération CreationPolicy . Si les stratégies sont incompatibles, cette exportation ne sera pas considérée comme une correspondance pour l’importation donnée. Le tableau suivant récapitule l’interaction de ces deux propriétés.
RequiredCreationPolicy | L’exportation spécifie n’importe CreationPolicy lequel ou aucun spécifié. | L’exportation CreationPolicy spécifie Shared | Export’s CreationPolicy spécifie NonShared |
---|---|---|---|
Quelconque | Une seule instance partagée de l’objet exporté sera créée. | Une seule instance partagée de l’objet exporté sera créée. | Une nouvelle instance de l’objet exporté est créée pour chaque importateur. |
Partagé | Une seule instance partagée de l’objet exporté sera créée. | Une seule instance partagée de l’objet exporté sera créée. | L’exportation ne sera pas considérée comme une correspondance pour l’importation. |
Non partagé | Une nouvelle instance de l’objet exporté est créée pour chaque importateur. | L’exportation ne sera pas considérée comme une correspondance pour l’importation. | Une nouvelle instance de l’objet exporté est créée pour chaque importateur. |