CreationPolicy 列舉
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
指定執行個體化組件的時機和方式。
public enum class CreationPolicy
public enum CreationPolicy
type CreationPolicy =
Public Enum CreationPolicy
- 繼承
欄位
Any | 0 | 指定 CompositionContainer 將針對目前內容中的組件使用最適合的 CreationPolicy。 這是預設的 CreationPolicy。 根據預設,除非 CompositionContainer 或匯入者要求 Shared,否則 ComposablePart 將使用 NonShared。 |
NonShared | 2 | 指定將由 ComposablePart 為每一個要求者建立相關之 CompositionContainer 的非共用新執行個體。 |
Shared | 1 | 指定將由 ComposablePart 建立相關之 CompositionContainer 的單一共用執行個體,並且與所有要求者共用。 |
備註
在撰寫過程中,需要 CompositionContainer 匯出所描述之對象的實例,才能填入匯入。 如果使用一個導出來填滿多個匯入,則有兩個可能的行為。 會建立匯出物件的單一實例,併為每個匯入工具指定相同對象的參考,或為每個匯入工具建立導出對象的個別實例。
發生的行為取決於 CreationPolicy 附加至匯出之 的屬性 PartCreationPolicyAttribute 和 RequiredCreationPolicy 的 ImportAttribute。 這兩者都會包含 列舉中的 CreationPolicy 值。 如果原則不相容,則導出不會被視為符合指定的匯入。 下表摘要說明這兩個屬性的互動。
RequiredCreationPolicy | 匯出的 CreationPolicy 會指定 [任何] 或 [無] 指定的 。 | 匯出的 CreationPolicy 指定共用 | 導出的 CreationPolicy 指定 NonShared |
---|---|---|---|
任意 | 將會建立匯出物件的單一共享實例。 | 將會建立匯出物件的單一共享實例。 | 將會為每個匯入工具建立匯出物件的新實例。 |
共用 | 將會建立匯出物件的單一共享實例。 | 將會建立匯出物件的單一共享實例。 | 匯出不會被視為匯入的相符專案。 |
NonShared | 將會為每個匯入工具建立匯出物件的新實例。 | 匯出不會被視為匯入的相符專案。 | 將會為每個匯入工具建立匯出物件的新實例。 |