CreationPolicy Enum

Definition

Anger när och hur en del ska instansieras.

public enum class CreationPolicy
public enum CreationPolicy
type CreationPolicy = 
Public Enum CreationPolicy
Arv
CreationPolicy

Fält

Name Värde Description
Any 0

Anger att kommer att CompositionContainer använda den lämpligaste CreationPolicy för delen med tanke på den aktuella kontexten. Detta är standardvärdet CreationPolicy. Som standard CompositionContainer använder , Sharedsåvida inte ComposablePart importören begär NonShared.

Shared 1

Anger att en enda delad instans av den associerade ComposablePart kommer att skapas av CompositionContainer och delas av alla begäranden.

NonShared 2

Anger att en ny icke-delad instans av den associerade ComposablePart kommer att skapas av CompositionContainer för varje begärande.

Kommentarer

Under sammansättningen CompositionContainer behöver instanserna av de objekt som beskrivs av exporten för att fylla importen. Om en export används för att fylla flera importer finns det två möjliga beteenden. Antingen skapas en enskild instans av det exporterade objektet och en referens till samma objekt ges till varje importör, eller så skapas en separat instans av det exporterade objektet för varje importör.

Vilket beteende som inträffar beror på CreationPolicy egenskapen för den PartCreationPolicyAttribute som är kopplad till exporten och RequiredCreationPolicy för ImportAttribute. Båda innehåller ett värde från CreationPolicy uppräkningen. Om principerna är inkompatibla betraktas inte exporten som en matchning för den angivna importen. I följande tabell sammanfattas interaktionen mellan dessa två egenskaper.

RequiredCreationPolicy Export anger CreationPolicy Alla eller inga angivna. CreationPolicy Export anger delad Export anger CreationPolicy icke-delad
Vilket som helst En enda delad instans av det exporterade objektet skapas. En enda delad instans av det exporterade objektet skapas. En ny instans av det exporterade objektet skapas för varje importör.
Delad En enda delad instans av det exporterade objektet skapas. En enda delad instans av det exporterade objektet skapas. Exporten betraktas inte som en matchning för importen.
Ej delad En ny instans av det exporterade objektet skapas för varje importör. Exporten betraktas inte som en matchning för importen. En ny instans av det exporterade objektet skapas för varje importör.

Gäller för