CreationPolicy 列挙型
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
パーツをインスタンス化するタイミングとその方法を指定します。
public enum class CreationPolicy
public enum CreationPolicy
type CreationPolicy =
Public Enum CreationPolicy
- 継承
フィールド
Any | 0 | CompositionContainer で、現在のコンテキストにおいてパーツに最適な CreationPolicy を使用するように指定します。 これが既定の CreationPolicy です。 既定では、CompositionContainer またはインポーターが Shared を要求しない限り、ComposablePart は NonShared を使用します。 |
NonShared | 2 | ComposablePart で、関連付けられている CompositionContainer の新しい非共有インスタンスを要求元ごとに作成するように指定します。 |
Shared | 1 | ComposablePart で、関連付けられている CompositionContainer の単一の共有インスタンスを作成し、すべての要求元で共有するように指定します。 |
注釈
コンポジションの過程で、インポートを CompositionContainer 埋めるためにエクスポートによって記述されたオブジェクトのインスタンスが必要です。 1 つのエクスポートを使用して複数のインポートを設定する場合は、2 つの動作が考えられます。 エクスポートされたオブジェクトの 1 つのインスタンスが作成され、同じオブジェクトへの参照がすべてのインポーターに渡されるか、エクスポートされたオブジェクトの個別のインスタンスがインポーターごとに作成されます。
どの動作が発生するかは、エクスポートに CreationPolicy アタッチされている の PartCreationPolicyAttribute プロパティと RequiredCreationPolicy の ImportAttributeプロパティによって異なります。 どちらも 列挙体の値を CreationPolicy 含みます。 ポリシーに互換性がない場合、そのエクスポートは、指定されたインポートの一致とは見なされません。 次の表は、これら 2 つのプロパティの相互作用をまとめたものです。
RequiredCreationPolicy | Export の CreationPolicy は、指定された Any または none を指定します。 | Export の CreationPolicy は Shared を指定します | Export の CreationPolicy は NonShared を指定します |
---|---|---|---|
Any | エクスポートされたオブジェクトの 1 つの共有インスタンスが作成されます。 | エクスポートされたオブジェクトの 1 つの共有インスタンスが作成されます。 | エクスポートされたオブジェクトの新しいインスタンスがインポーターごとに作成されます。 |
共有 | エクスポートされたオブジェクトの 1 つの共有インスタンスが作成されます。 | エクスポートされたオブジェクトの 1 つの共有インスタンスが作成されます。 | エクスポートはインポートの一致とは見なされません。 |
NonShared | エクスポートされたオブジェクトの新しいインスタンスがインポーターごとに作成されます。 | エクスポートはインポートの一致とは見なされません。 | エクスポートされたオブジェクトの新しいインスタンスがインポーターごとに作成されます。 |
適用対象
.NET