CreationPolicy CreationPolicy CreationPolicy CreationPolicy Enum

Definizione

Specifica il momento e la modalità in cui verrà creata un'istanza di una parte.Specifies when and how a part will be instantiated.

public enum class CreationPolicy
public enum CreationPolicy
type CreationPolicy = 
Public Enum CreationPolicy
Ereditarietà
CreationPolicyCreationPolicyCreationPolicyCreationPolicy

Campi

Any Any Any Any 0

Specifica che CompositionContainer utilizzerà l'oggetto CreationPolicy più adatto per la parte a seconda del contesto corrente.Specifies that the CompositionContainer will use the most appropriate CreationPolicy for the part given the current context. Questo è l'oggetto CreationPolicy predefinito.This is the default CreationPolicy. Per impostazione predefinita, CompositionContainer utilizzerà Shared, a meno che ComposablePart o l'utilità di importazione non richieda NonShared.By default, CompositionContainer will use Shared, unless the ComposablePart or importer requests NonShared.

NewScope NewScope NewScope NewScope 3
NonShared NonShared NonShared NonShared 2

Specifica che una nuova istanza non condivisa dell'oggetto ComposablePart associato sarà creata da CompositionContainer per ogni richiedente.Specifies that a new non-shared instance of the associated ComposablePart will be created by the CompositionContainer for every requestor.

Shared Shared Shared Shared 1

Specifica che una singola istanza condivisa dell'oggetto ComposablePart associato sarà creata da CompositionContainer e condivisa da tutti i richiedenti.Specifies that a single shared instance of the associated ComposablePart will be created by the CompositionContainer and shared by all requestors.

Commenti

Nel corso della composizione, il CompositionContainer ha bisogno di istanze di oggetti descritti dalle esportazioni per riempire le importazioni.In the course of composition, the CompositionContainer needs instances of the objects described by exports in order to fill imports. Se un'esportazione viene usata per compilare più importazioni, esistono due possibili comportamenti.If a one export is used to fill multiple imports, there are two possible behaviors. Viene creata una singola istanza dell'oggetto esportato e un riferimento allo stesso oggetto viene assegnato a ogni utilità di importazione o per ogni utilità di importazione viene creata un'istanza separata dell'oggetto esportato.Either a single instance of the exported object is created, and a reference to the same object is given to every importer, or a separate instance of the exported object is created for each importer.

Si verifica il comportamento dipende il CreationPolicy proprietà del PartCreationPolicyAttribute collegato all'esportazione e il RequiredCreationPolicy del ImportAttribute.Which behavior occurs depends on the CreationPolicy property of the PartCreationPolicyAttribute attached to the export and the RequiredCreationPolicy of the ImportAttribute. Entrambi i tipi che contengono un valore compreso il CreationPolicy enumerazione.Both of which will contain a value from the CreationPolicy enumeration. Se i criteri non sono compatibili, tale esportazione non essere considerato una corrispondenza per l'importazione specificata.If the policies are incompatible, that export will not be considered a match for the given import. La tabella seguente riepiloga l'interazione di queste due proprietà.The following table summarizes the interaction of these two properties.

RequiredCreationPolicy Del esportazione CreationPolicy specifica uno o nessun valore specificato.Export's CreationPolicy specifies Any or none specified. Del esportazione CreationPolicy specifica condivisoExport's CreationPolicy specifies Shared Del esportazione CreationPolicy specifica NonSharedExport's CreationPolicy specifies NonShared
QualsiasiAny Una singola istanza condivisa dell'oggetto esportato verrà creata.A single, shared instance of the exported object will be created. Una singola istanza condivisa dell'oggetto esportato verrà creata.A single, shared instance of the exported object will be created. Una nuova istanza dell'oggetto esportato verrà creata per ogni utilità di importazione.A new instance of the exported object will be created for each importer.
SharedShared Una singola istanza condivisa dell'oggetto esportato verrà creata.A single, shared instance of the exported object will be created. Una singola istanza condivisa dell'oggetto esportato verrà creata.A single, shared instance of the exported object will be created. L'esportazione non viene considerato una corrispondenza per l'importazione.The export will not be considered a match for the import.
NonSharedNonShared Una nuova istanza dell'oggetto esportato verrà creata per ogni utilità di importazione.A new instance of the exported object will be created for each importer. L'esportazione non viene considerato una corrispondenza per l'importazione.The export will not be considered a match for the import. Una nuova istanza dell'oggetto esportato verrà creata per ogni utilità di importazione.A new instance of the exported object will be created for each importer.

Si applica a