Partager via


CreationPolicy Énumération

Définition

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
CreationPolicy

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.

S’applique à