Поделиться через


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 объекта будет создан CompositionContainer всеми запрашивающими и общими.

NonShared 2

Указывает, что новый не общий экземпляр связанного ComposablePart объекта будет создан CompositionContainer для каждого запрашивающего объекта.

Комментарии

В ходе композиции необходимы экземпляры объектов, CompositionContainer описанных в экспорте, для заполнения импорта. Если для заполнения нескольких импортов используется один экспорт, существует два возможных поведения. Создается один экземпляр экспортированного объекта, и для каждого импорта создается ссылка на один и тот же объект, или для каждого импорта создается отдельный экземпляр экспортированного объекта.

Какое поведение происходит, CreationPolicy зависит от свойства присоединенного PartCreationPolicyAttribute к экспорту и RequiredCreationPolicy от него ImportAttribute. Оба из которых будут содержать значение из CreationPolicy перечисления. Если политики несовместимы, этот экспорт не будет считаться совпадением для данного импорта. В следующей таблице описано взаимодействие этих двух свойств.

RequiredCreationPolicy CreationPolicy Экспорт задает любой или нет указанных. CreationPolicy Экспорт указывает общий доступ CreationPolicy Экспорт указывает nonShared
Любое Будет создан один общий экземпляр экспортированного объекта. Будет создан один общий экземпляр экспортированного объекта. Для каждого импорта будет создан новый экземпляр экспортированного объекта.
Общее Будет создан один общий экземпляр экспортированного объекта. Будет создан один общий экземпляр экспортированного объекта. Экспорт не будет считаться совпадением для импорта.
NonShared Для каждого импорта будет создан новый экземпляр экспортированного объекта. Экспорт не будет считаться совпадением для импорта. Для каждого импорта будет создан новый экземпляр экспортированного объекта.

Применяется к