CreationPolicy CreationPolicy CreationPolicy CreationPolicy Enum

Определение

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

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

Поля

Any Any Any 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 NewScope NewScope NewScope 3
NonShared NonShared NonShared 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 Shared Shared 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 должен экземпляры объектов, описываемого экспорты для заполнения импортов.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 Export CreationPolicy указывает Any или не указано.Export's CreationPolicy specifies Any or none specified. Export CreationPolicy указывает SharedExport's CreationPolicy specifies Shared Export CreationPolicy указывает NonSharedExport'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.

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