共用方式為


CreationPolicy 列舉

定義

指定何時及如何具現化元件。

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

欄位

名稱 Description
Any 0

指定 CompositionContainer 在當前情境下,將使用最合適的 CreationPolicy 部分。 這是預設 CreationPolicy的 。 預設情況下,CompositionContainer除非 或 匯入者要求 NonShared,否則 會使用 SharedComposablePart

Shared 1

規定由 建立CompositionContainer一個關聯ComposablePart的單一共享實例,並由所有請求者共享。

NonShared 2

規定每個請求者都會建立CompositionContainer一個新的非共享關聯實例ComposablePart

備註

在組合過程中, CompositionContainer 出口所描述的物件實例需要以填補進口。 如果用一次匯出來填補多個匯入,有兩種可能的行為。 要麼建立一個匯出物件的單一實例,並將同一物件的參考給每個匯入者,要麼為每個匯入者建立獨立的匯出物件實例。

發生哪種行為取決於CreationPolicy附加於輸出的屬性以及 RequiredCreationPolicyImportAttribute的屬性PartCreationPolicyAttribute。 這兩者都會包含列 CreationPolicy 舉中的一個值。 若政策不相容,該出口將不被視為該進口的匹配。 下表總結了這兩種性質的交互作用。

RequiredCreationPolicy 出口 CreationPolicy 則指定任何或不指定。 出口的 CreationPolicy 指定是共享 Exports CreationPolicy 指定為 NonShared
任意 匯出物件會建立一個單一的共享實例。 匯出物件會建立一個單一的共享實例。 每個匯入器都會建立一個新的匯出物件實例。
共用 匯出物件會建立一個單一的共享實例。 匯出物件會建立一個單一的共享實例。 出口的商品不會被視為進口的匹配。
非共享 每個匯入器都會建立一個新的匯出物件實例。 出口的商品不會被視為進口的匹配。 每個匯入器都會建立一個新的匯出物件實例。

適用於