Freigeben über


CreationPolicy Enumeration

Definition

Gibt an, wann und wie ein Teil instanziiert wird.

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

Felder

Name Wert Beschreibung
Any 0

Gibt an, dass die CompositionContainer Für den Teil im aktuellen Kontext am besten geeignet CreationPolicy ist. Dies ist die Standardeinstellung CreationPolicy. Wird standardmäßig verwendet Shared, es sei denn, CompositionContainer die ComposablePart Anforderungen des Importeurs NonShared.

Shared 1

Gibt an, dass eine einzelne freigegebene Instanz der zugeordneten ComposablePart Instanz von allen CompositionContainer Anforderern erstellt und freigegeben wird.

NonShared 2

Gibt an, dass eine neue nicht freigegebene Instanz der zugeordneten ComposablePart Instanz von jedem CompositionContainer Anforderer erstellt wird.

Hinweise

Im Verlauf der Komposition benötigen die CompositionContainer Instanzen der objekte, die durch Exporte beschrieben werden, um Importe auszufüllen. Wenn ein Export verwendet wird, um mehrere Importe auszufüllen, gibt es zwei mögliche Verhaltensweisen. Entweder wird eine einzelne Instanz des exportierten Objekts erstellt, und für jeden Importeur wird ein Verweis auf dasselbe Objekt angegeben, oder für jeden Importeur wird eine separate Instanz des exportierten Objekts erstellt.

Welches Verhalten auftritt, hängt von der CreationPolicy Eigenschaft des PartCreationPolicyAttribute an den Export angefügten und des RequiredCreationPolicy .ImportAttribute Beide enthalten einen Wert aus der CreationPolicy Enumeration. Wenn die Richtlinien nicht kompatibel sind, wird dieser Export nicht als Übereinstimmung für den angegebenen Import betrachtet. In der folgenden Tabelle wird die Interaktion dieser beiden Eigenschaften zusammengefasst.

RequiredCreationPolicy CreationPolicy Der Export gibt "Any" oder "None" an. Export gibt " CreationPolicy Freigegeben" an. CreationPolicy Export gibt nonShared an
Beliebig Es wird eine einzelne freigegebene Instanz des exportierten Objekts erstellt. Es wird eine einzelne freigegebene Instanz des exportierten Objekts erstellt. Für jeden Importeur wird eine neue Instanz des exportierten Objekts erstellt.
Shared Es wird eine einzelne freigegebene Instanz des exportierten Objekts erstellt. Es wird eine einzelne freigegebene Instanz des exportierten Objekts erstellt. Der Export wird nicht als Übereinstimmung für den Import betrachtet.
Nicht teilend Für jeden Importeur wird eine neue Instanz des exportierten Objekts erstellt. Der Export wird nicht als Übereinstimmung für den Import betrachtet. Für jeden Importeur wird eine neue Instanz des exportierten Objekts erstellt.

Gilt für: