次の方法で共有


CreationPolicy 列挙型

定義

パーツをインスタンス化するタイミングと方法を指定します。

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

フィールド

名前 説明
Any 0

現在のコンテキストに応じて、 CompositionContainer がパーツに最も適切な CreationPolicy を使用することを指定します。 これが既定の CreationPolicyです。 既定では、CompositionContainerは、ComposablePartまたはインポーターがNonShared要求しない限り、Sharedを使用します。

Shared 1

関連付けられた ComposablePart の 1 つの共有インスタンスが CompositionContainer によって作成され、すべてのリクエスターによって共有されるように指定します。

NonShared 2

関連付けられた ComposablePart の新しい非共有インスタンスを、すべてのリクエスタの CompositionContainer によって作成することを指定します。

注釈

コンポジションの過程で、 CompositionContainer はインポートを満たすためにエクスポートで記述されたオブジェクトのインスタンスを必要とします。 1 つのエクスポートを使用して複数のインポートを入力する場合、2 つの動作が考えられます。 エクスポートされたオブジェクトの 1 つのインスタンスが作成され、同じオブジェクトへの参照がすべてのインポーターに与えられるか、エクスポートされたオブジェクトの個別のインスタンスが各インポーターに対して作成されます。

どの動作が発生するかは、エクスポートにアタッチされているPartCreationPolicyAttributeCreationPolicy プロパティと、ImportAttributeRequiredCreationPolicyによって異なります。 どちらも CreationPolicy 列挙体の値を含みます。 ポリシーに互換性がない場合、そのエクスポートは指定されたインポートの一致とは見なされません。 次の表は、これら 2 つのプロパティの相互作用をまとめたものです。

RequiredCreationPolicy エクスポートの CreationPolicy は、指定された Any または none を指定します。 エクスポートの CreationPolicy は共有を指定します エクスポートの CreationPolicy は非共有を指定します
[任意] エクスポートされたオブジェクトの 1 つの共有インスタンスが作成されます。 エクスポートされたオブジェクトの 1 つの共有インスタンスが作成されます。 エクスポートされたオブジェクトの新しいインスタンスが、各インポーターに対して作成されます。
Shared エクスポートされたオブジェクトの 1 つの共有インスタンスが作成されます。 エクスポートされたオブジェクトの 1 つの共有インスタンスが作成されます。 エクスポートはインポートの一致とは見なされません。
NonShared エクスポートされたオブジェクトの新しいインスタンスが、各インポーターに対して作成されます。 エクスポートはインポートの一致とは見なされません。 エクスポートされたオブジェクトの新しいインスタンスが、各インポーターに対して作成されます。

適用対象