Freigeben über


CreationPolicy Enumeration

Definition

Gibt den Zeitpunkt und die Art der Instanziierung eines Teils an.

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

Felder

Any 0

Gibt an, dass der CompositionContainer die am besten passende CreationPolicy für das Part im angegebenen aktuellen Kontext verwendet. Dies ist die standardmäßige CreationPolicy. Standardmäßig verwendet CompositionContainerShared, außer wenn das ComposablePart oder der Importer NonShared anfordert.

NonShared 2

Gibt an, dass eine neue nicht freigegebene Instanz des zugeordneten ComposablePart vom CompositionContainer für jeden Anfordernden erstellt wird.

Shared 1

Gibt an, dass eine einzelne freigegebene Instanz des zugeordneten ComposablePart vom CompositionContainer erstellt und von allen Anfordernden gemeinsam genutzt wird.

Hinweise

Im Laufe der Komposition benötigt Instanzen CompositionContainer der von Exporten beschriebenen Objekte, um Importe zu füllen. Wenn ein export verwendet wird, um mehrere Importe zu füllen, gibt es zwei mögliche Verhaltensweisen. Entweder wird eine einzelne instance des exportierten Objekts erstellt, und jeder Importeur erhält einen Verweis auf dasselbe Objekt, oder für jeden Importeur wird eine separate instance des exportierten Objekts erstellt.

Welches Verhalten auftritt, hängt von der CreationPolicy -Eigenschaft des PartCreationPolicyAttribute an den Export angefügten und der RequiredCreationPolicy von ab 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 Export gibt "Any" CreationPolicy oder "None" an. Export gibt CreationPolicy Shared an. Export gibt CreationPolicy nicht freigegeben an.
Any Es wird eine einzelne freigegebene instance des exportierten Objekts erstellt. Es wird eine einzelne freigegebene instance des exportierten Objekts erstellt. Für jeden Importeur wird eine neue instance des exportierten Objekts erstellt.
Shared Es wird eine einzelne freigegebene instance des exportierten Objekts erstellt. Es wird eine einzelne freigegebene instance des exportierten Objekts erstellt. Der Export wird nicht als Übereinstimmung für den Import betrachtet.
Nicht freigegeben Für jeden Importeur wird eine neue instance des exportierten Objekts erstellt. Der Export wird nicht als Übereinstimmung für den Import betrachtet. Für jeden Importeur wird eine neue instance des exportierten Objekts erstellt.

Gilt für: