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