CreationPolicy Перечисление

Определение

Указывает, когда и как будет создаваться экземпляр части.Specifies when and how a part will be instantiated.

public enum class CreationPolicy
public enum CreationPolicy
type CreationPolicy = 
Public Enum CreationPolicy
Наследование
CreationPolicy

Поля

Any 0

Указывает, что объектом CompositionContainer будет использоваться наиболее подходящая политика CreationPolicy для части с учетом текущего контекста.Specifies that the CompositionContainer will use the most appropriate CreationPolicy for the part given the current context. Это политика CreationPolicy по умолчанию.This is the default CreationPolicy. По умолчанию объектом CompositionContainer используется значение политики Shared, если частью ComposablePart или импортером не запрашивается значение NonShared.By default, CompositionContainer will use Shared, unless the ComposablePart or importer requests NonShared.

NewScope 3
NonShared 2

Указывает, что новый, не являющийся общим экземпляр связанной части ComposablePart будет создан объектом CompositionContainer для каждого инициатора запроса.Specifies that a new non-shared instance of the associated ComposablePart will be created by the CompositionContainer for every requestor.

Shared 1

Указывает, что объектом ComposablePart будет создан один общий экземпляр связанной части CompositionContainer, который будет совместно использоваться всеми инициаторами запросов.Specifies that a single shared instance of the associated ComposablePart will be created by the CompositionContainer and shared by all requestors.

Комментарии

В процессе композиции для заполнения импортов CompositionContainer нужны экземпляры объектов, описанные в разделе EXPORTS.In the course of composition, the CompositionContainer needs instances of the objects described by exports in order to fill imports. Если для заполнения нескольких импортов используется один экспорт, возможны два поведения.If a one export is used to fill multiple imports, there are two possible behaviors. Создается либо один экземпляр экспортированного объекта, и ссылка на тот же объект предоставляется каждому импортеру, либо отдельный экземпляр экспортированного объекта создается для каждого импортера.Either a single instance of the exported object is created, and a reference to the same object is given to every importer, or a separate instance of the exported object is created for each importer.

Поведение зависит от CreationPolicy свойства, PartCreationPolicyAttribute присоединенного RequiredCreationPolicy к ImportAttributeэкспорту, и объекта.Which behavior occurs depends on the CreationPolicy property of the PartCreationPolicyAttribute attached to the export and the RequiredCreationPolicy of the ImportAttribute. Оба значения, которые будут содержать значение из CreationPolicy перечисления.Both of which will contain a value from the CreationPolicy enumeration. Если политики несовместимы, экспорт не будет считаться совпадением для данного импорта.If the policies are incompatible, that export will not be considered a match for the given import. В следующей таблице приведена сводка по взаимодействию этих двух свойств.The following table summarizes the interaction of these two properties.

RequiredCreationPolicy CreationPolicy Export задает ANY или None.Export's CreationPolicy specifies Any or none specified. CreationPolicy Экспорт указывает общийExport's CreationPolicy specifies Shared Экспорт указывает CreationPolicy на несовместное использованиеExport's CreationPolicy specifies NonShared
ЛюбойAny Будет создан один общий экземпляр экспортированного объекта.A single, shared instance of the exported object will be created. Будет создан один общий экземпляр экспортированного объекта.A single, shared instance of the exported object will be created. Для каждого импортера будет создан новый экземпляр экспортированного объекта.A new instance of the exported object will be created for each importer.
SharedShared Будет создан один общий экземпляр экспортированного объекта.A single, shared instance of the exported object will be created. Будет создан один общий экземпляр экспортированного объекта.A single, shared instance of the exported object will be created. Экспорт не будет считаться соответствием для импорта.The export will not be considered a match for the import.
Не являющаяся общейNonShared Для каждого импортера будет создан новый экземпляр экспортированного объекта.A new instance of the exported object will be created for each importer. Экспорт не будет считаться соответствием для импорта.The export will not be considered a match for the import. Для каждого импортера будет создан новый экземпляр экспортированного объекта.A new instance of the exported object will be created for each importer.

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