CreationPolicy 列挙型

定義

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

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

フィールド

Any 0

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

NonShared 2

ComposablePart で、関連付けられている CompositionContainer の新しい非共有インスタンスを要求元ごとに作成するように指定します。

Shared 1

ComposablePart で、関連付けられている CompositionContainer の単一の共有インスタンスを作成し、すべての要求元で共有するように指定します。

注釈

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

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

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

適用対象