CreationPolicy 列舉

定義

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

C#
public enum CreationPolicy
繼承
CreationPolicy

欄位

名稱 Description
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 將會為每個匯入工具建立匯出物件的新實例。 匯出不會被視為匯入的相符專案。 將會為每個匯入工具建立匯出物件的新實例。

適用於

產品 版本
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1