CreationPolicy Перечисление
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Указывает, когда и как будет создан экземпляр части.
public enum class CreationPolicy
public enum CreationPolicy
type CreationPolicy =
Public Enum CreationPolicy
- Наследование
Поля
| Имя | Значение | Описание |
|---|---|---|
| Any | 0 | Указывает, что CompositionContainer используется наиболее подходящий CreationPolicy для части с учетом текущего контекста. Это значение по умолчанию CreationPolicy. По умолчанию будет использоваться, CompositionContainer если ComposablePart запросы или импорт не NonSharedбудут использоватьсяShared. |
| Shared | 1 | Указывает, что один общий экземпляр связанного ComposablePart объекта будет создан CompositionContainer всеми запрашивающими и общими. |
| NonShared | 2 | Указывает, что новый не общий экземпляр связанного ComposablePart объекта будет создан CompositionContainer для каждого запрашивающего объекта. |
Комментарии
В ходе композиции необходимы экземпляры объектов, CompositionContainer описанных в экспорте, для заполнения импорта. Если для заполнения нескольких импортов используется один экспорт, существует два возможных поведения. Создается один экземпляр экспортированного объекта, и для каждого импорта создается ссылка на один и тот же объект, или для каждого импорта создается отдельный экземпляр экспортированного объекта.
Какое поведение происходит, CreationPolicy зависит от свойства присоединенного PartCreationPolicyAttribute к экспорту и RequiredCreationPolicy от него ImportAttribute. Оба из которых будут содержать значение из CreationPolicy перечисления. Если политики несовместимы, этот экспорт не будет считаться совпадением для данного импорта. В следующей таблице описано взаимодействие этих двух свойств.
| RequiredCreationPolicy | CreationPolicy Экспорт задает любой или нет указанных. | CreationPolicy Экспорт указывает общий доступ | CreationPolicy Экспорт указывает nonShared |
|---|---|---|---|
| Любое | Будет создан один общий экземпляр экспортированного объекта. | Будет создан один общий экземпляр экспортированного объекта. | Для каждого импорта будет создан новый экземпляр экспортированного объекта. |
| Общее | Будет создан один общий экземпляр экспортированного объекта. | Будет создан один общий экземпляр экспортированного объекта. | Экспорт не будет считаться совпадением для импорта. |
| NonShared | Для каждого импорта будет создан новый экземпляр экспортированного объекта. | Экспорт не будет считаться совпадением для импорта. | Для каждого импорта будет создан новый экземпляр экспортированного объекта. |