CreationPolicy Перечисление
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Указывает, когда и как будет создаваться экземпляр части.
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 требуются экземпляры объектов, описанных с помощью exports. Если для заполнения нескольких операций импорта используется один экспорт, возможны два варианта поведения. Создается либо один экземпляр экспортированного объекта, и каждому средству импорта предоставляется ссылка на один и тот же объект, либо создается отдельный экземпляр экспортированного объекта для каждого средства импорта.
Поведение зависит от CreationPolicy свойства объекта , PartCreationPolicyAttribute присоединенного к экспорту, и RequiredCreationPolicy свойства ImportAttributeобъекта . Оба из них будут содержать значение из перечисления CreationPolicy . Если политики несовместимы, экспорт не будет считаться совпадением для данного импорта. В следующей таблице показано взаимодействие этих двух свойств.
RequiredCreationPolicy | CreationPolicy Для параметра Export задано значение Any или None. | CreationPolicy Для параметра экспорта указано значение Shared | CreationPolicy Параметр экспорта указывает nonShared |
---|---|---|---|
Любой | Будет создан один общий экземпляр экспортированного объекта. | Будет создан один общий экземпляр экспортированного объекта. | Для каждого средства импорта будет создан новый экземпляр экспортированного объекта. |
Совмещаемая блокировка | Будет создан один общий экземпляр экспортированного объекта. | Будет создан один общий экземпляр экспортированного объекта. | Экспорт не будет считаться совпадением для импорта. |
Не общий доступ | Для каждого средства импорта будет создан новый экземпляр экспортированного объекта. | Экспорт не будет считаться совпадением для импорта. | Для каждого средства импорта будет создан новый экземпляр экспортированного объекта. |