CreationPolicy Výčet

Definice

Určuje, kdy a jak se instance části vytvoří.

public enum class CreationPolicy
public enum CreationPolicy
type CreationPolicy = 
Public Enum CreationPolicy
Dědičnost
CreationPolicy

Pole

Any 0

Určuje, že CompositionContainer bude používat nejvhodnější pro část daného aktuálního CreationPolicy kontextu. Toto je výchozí hodnota CreationPolicy . Ve výchozím nastavení CompositionContainer bude používat , pokud nástroj nebo Shared ComposablePart importér nepožádá NonShared .

NewScope 3
NonShared 2

Určuje, že pro každého requestoru se vytvoří nová nes sdílená instance přidružené ComposablePart CompositionContainer instance .

Shared 1

Určuje, že jedna sdílená instance přidruženého objektu bude vytvořena objektem a bude ComposablePart CompositionContainer sdílena všemi requestory.

Poznámky

V průběhu kompozicy jsou potřeba instance objektů popsaných v CompositionContainer exportech, aby bylo možné vyplnit importy. Pokud jeden export slouží k vyplnění více importů, existují dvě možná chování. Buď se vytvoří jedna instance exportovaného objektu a každému importéru se přidá odkaz na stejný objekt, nebo se pro každý importér vytvoří samostatná instance exportovaného objektu.

Ke kterému chování dochází, CreationPolicy závisí na vlastnosti objektu PartCreationPolicyAttribute připojeného k exportu a RequiredCreationPolicy objektu ImportAttribute . Oba budou obsahovat hodnotu z CreationPolicy výčtu. Pokud jsou zásady nekompatibilní, nebude se tento export považovat za shodu pro daný import. Následující tabulka shrnuje interakci těchto dvou vlastností.

RequiredCreationPolicy Hodnota exportu CreationPolicy určuje hodnotu Any (Jakékoli) nebo none (žádná). Hodnota exportu CreationPolicy určuje hodnotu Shared. Export určuje CreationPolicy Nesdílené
Všechny Vytvoří se jedna sdílená instance exportovaného objektu. Vytvoří se jedna sdílená instance exportovaného objektu. Pro každý importér se vytvoří nová instance exportovaného objektu.
Shared Vytvoří se jedna sdílená instance exportovaného objektu. Vytvoří se jedna sdílená instance exportovaného objektu. Export se nebude považovat za shodu importu.
Nesdílené Pro každý importér se vytvoří nová instance exportovaného objektu. Export se nebude považovat za shodu importu. Pro každý importér se vytvoří nová instance exportovaného objektu.

Platí pro