CreationPolicy 列舉
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
指定何時及如何具現化元件。
public enum class CreationPolicy
public enum CreationPolicy
type CreationPolicy =
Public Enum CreationPolicy
- 繼承
欄位
| 名稱 | 值 | Description |
|---|---|---|
| Any | 0 | 指定 CompositionContainer 在當前情境下,將使用最合適的 CreationPolicy 部分。 這是預設 CreationPolicy的 。 預設情況下,CompositionContainer除非 或 匯入者要求 NonShared,否則 會使用 Shared。ComposablePart |
| Shared | 1 | 規定由 建立CompositionContainer一個關聯ComposablePart的單一共享實例,並由所有請求者共享。 |
| NonShared | 2 | 規定每個請求者都會建立CompositionContainer一個新的非共享關聯實例ComposablePart。 |
備註
在組合過程中, CompositionContainer 出口所描述的物件實例需要以填補進口。 如果用一次匯出來填補多個匯入,有兩種可能的行為。 要麼建立一個匯出物件的單一實例,並將同一物件的參考給每個匯入者,要麼為每個匯入者建立獨立的匯出物件實例。
發生哪種行為取決於CreationPolicy附加於輸出的屬性以及 RequiredCreationPolicyImportAttribute的屬性PartCreationPolicyAttribute。 這兩者都會包含列 CreationPolicy 舉中的一個值。 若政策不相容,該出口將不被視為該進口的匹配。 下表總結了這兩種性質的交互作用。
| RequiredCreationPolicy | 出口 CreationPolicy 則指定任何或不指定。 | 出口的 CreationPolicy 指定是共享 | Exports CreationPolicy 指定為 NonShared |
|---|---|---|---|
| 任意 | 匯出物件會建立一個單一的共享實例。 | 匯出物件會建立一個單一的共享實例。 | 每個匯入器都會建立一個新的匯出物件實例。 |
| 共用 | 匯出物件會建立一個單一的共享實例。 | 匯出物件會建立一個單一的共享實例。 | 出口的商品不會被視為進口的匹配。 |
| 非共享 | 每個匯入器都會建立一個新的匯出物件實例。 | 出口的商品不會被視為進口的匹配。 | 每個匯入器都會建立一個新的匯出物件實例。 |