CreationPolicy 列舉

定義

指定執行個體化組件的時機和方式。

public enum class CreationPolicy
public enum CreationPolicy
type CreationPolicy = 
Public Enum CreationPolicy
繼承
CreationPolicy

欄位

Any 0

指定 CompositionContainer 將針對目前內容中的組件使用最適合的 CreationPolicy。 這是預設的 CreationPolicy。 根據預設,除非 CompositionContainer 或匯入者要求 Shared,否則 ComposablePart 將使用 NonShared

NonShared 2

指定將由 ComposablePart 為每一個要求者建立相關之 CompositionContainer 的非共用新執行個體。

Shared 1

指定將由 ComposablePart 建立相關之 CompositionContainer 的單一共用執行個體,並且與所有要求者共用。

備註

在撰寫過程中,需要 CompositionContainer 匯出所描述之對象的實例,才能填入匯入。 如果使用一個導出來填滿多個匯入,則有兩個可能的行為。 會建立匯出物件的單一實例,併為每個匯入工具指定相同對象的參考,或為每個匯入工具建立導出對象的個別實例。

發生的行為取決於 CreationPolicy 附加至匯出之 的屬性 PartCreationPolicyAttributeRequiredCreationPolicyImportAttribute。 這兩者都會包含 列舉中的 CreationPolicy 值。 如果原則不相容,則導出不會被視為符合指定的匯入。 下表摘要說明這兩個屬性的互動。

RequiredCreationPolicy 匯出的 CreationPolicy 會指定 [任何] 或 [無] 指定的 。 匯出的 CreationPolicy 指定共用 導出的 CreationPolicy 指定 NonShared
任意 將會建立匯出物件的單一共享實例。 將會建立匯出物件的單一共享實例。 將會為每個匯入工具建立匯出物件的新實例。
共用 將會建立匯出物件的單一共享實例。 將會建立匯出物件的單一共享實例。 匯出不會被視為匯入的相符專案。
NonShared 將會為每個匯入工具建立匯出物件的新實例。 匯出不會被視為匯入的相符專案。 將會為每個匯入工具建立匯出物件的新實例。

適用於