Sdílet prostřednictvím


CreationPolicy Výčet

Definice

Určuje, kdy a jak se vytvoří instance dílu.

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

Pole

Any 0

Určuje, že bude CompositionContainer používat nejvhodnější CreationPolicy část pro aktuální kontext. Toto je výchozí CreationPolicy. Ve výchozím nastavení CompositionContainer použije , Sharedpokud ComposablePart dovozce nebo nežádá NonShared.

NonShared 2

Určuje, že pro každého žadatele vytvoří novou nesdílenou instanci přidruženého ComposablePart objektu CompositionContainer .

Shared 1

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

Poznámky

V průběhu složení CompositionContainer potřebuje instance objektů popsaných exporty, aby bylo možné vyplnit importy. Pokud se jeden export použije k vyplnění více importů, existují dvě možné chování. Buď se vytvoří jedna instance exportovaného objektu a každému dovozci se přidělí odkaz na stejný objekt, nebo se pro každého dovozce vytvoří samostatná instance exportovaného objektu.

K jakému CreationPolicy chování dojde, závisí na vlastnosti PartCreationPolicyAttribute připojené k exportu a RequiredCreationPolicyImportAttributevlastnosti . Oba budou obsahovat hodnotu z výčtu CreationPolicy . Pokud jsou zásady nekompatibilní, nebude tento export pro daný import považován za shodu. Následující tabulka shrnuje interakci těchto dvou vlastností.

RequiredCreationPolicy U možnosti Export je CreationPolicy zadáno jakékoli nebo žádné. Možnosti exportu CreationPolicy určují sdílené. Export určuje nesdílené CreationPolicy
Všechny Vytvoří se jedna sdílená instance exportovaného objektu. Vytvoří se jedna sdílená instance exportovaného objektu. Pro každého dovozce 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 nebude považován za shodu pro import.
Nesdílené Pro každého dovozce se vytvoří nová instance exportovaného objektu. Export nebude považován za shodu pro import. Pro každého dovozce se vytvoří nová instance exportovaného objektu.

Platí pro