CreationPolicy CreationPolicy CreationPolicy CreationPolicy Enum

Definición

Especifica cuándo y cómo se va a inicializar un elemento.Specifies when and how a part will be instantiated.

public enum class CreationPolicy
public enum CreationPolicy
type CreationPolicy = 
Public Enum CreationPolicy
Herencia
CreationPolicyCreationPolicyCreationPolicyCreationPolicy

Campos

Any Any Any Any 0

Especifica que CompositionContainer usará la CreationPolicy más adecuada para el elemento según el contexto actual.Specifies that the CompositionContainer will use the most appropriate CreationPolicy for the part given the current context. Es la CreationPolicy predeterminada.This is the default CreationPolicy. De forma predeterminada, CompositionContainer usará Shared, a menos que ComposablePart o el importador solicite NonShared.By default, CompositionContainer will use Shared, unless the ComposablePart or importer requests NonShared.

NewScope NewScope NewScope NewScope 3
NonShared NonShared NonShared NonShared 2

Especifica que ComposablePart creará una nueva instancia no compartida del CompositionContainer asociado para cada solicitante.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

Especifica que una única instancia compartida del ComposablePart asociado será creada por CompositionContainer y compartida por todos los solicitantes.Specifies that a single shared instance of the associated ComposablePart will be created by the CompositionContainer and shared by all requestors.

Comentarios

En el transcurso de composición, el CompositionContainer necesita las instancias de los objetos descritos por exportaciones para rellenar las importaciones.In the course of composition, the CompositionContainer needs instances of the objects described by exports in order to fill imports. Si una exportación se usa para rellenar varias importaciones, hay dos posibles comportamientos.If a one export is used to fill multiple imports, there are two possible behaviors. Se crea una única instancia del objeto exportado y una referencia al mismo objeto se asigna a cada importador, o se crea una instancia independiente del objeto exportado para cada importador.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.

Se produce el comportamiento que depende el CreationPolicy propiedad de la PartCreationPolicyAttribute adjunta a la exportación y el RequiredCreationPolicy de la ImportAttribute.Which behavior occurs depends on the CreationPolicy property of the PartCreationPolicyAttribute attached to the export and the RequiredCreationPolicy of the ImportAttribute. Que contendrá un valor de la CreationPolicy enumeración.Both of which will contain a value from the CreationPolicy enumeration. Si las directivas son incompatibles, esa exportación no se considerará a una coincidencia para la importación determinada.If the policies are incompatible, that export will not be considered a match for the given import. En la tabla siguiente se resume la interacción de estas dos propiedades.The following table summarizes the interaction of these two properties.

RequiredCreationPolicy La exportación CreationPolicy especifica alguno o no se especifica ninguno.Export's CreationPolicy specifies Any or none specified. La exportación CreationPolicy especifica SharedExport's CreationPolicy specifies Shared La exportación CreationPolicy especifica NonSharedExport's CreationPolicy specifies NonShared
CualquieraAny Se creará una instancia compartida única del objeto exportado.A single, shared instance of the exported object will be created. Se creará una instancia compartida única del objeto exportado.A single, shared instance of the exported object will be created. Se creará una nueva instancia del objeto exportado para cada importador.A new instance of the exported object will be created for each importer.
SharedShared Se creará una instancia compartida única del objeto exportado.A single, shared instance of the exported object will be created. Se creará una instancia compartida única del objeto exportado.A single, shared instance of the exported object will be created. La exportación no se considerarán a una coincidencia para la importación.The export will not be considered a match for the import.
NonSharedNonShared Se creará una nueva instancia del objeto exportado para cada importador.A new instance of the exported object will be created for each importer. La exportación no se considerarán a una coincidencia para la importación.The export will not be considered a match for the import. Se creará una nueva instancia del objeto exportado para cada importador.A new instance of the exported object will be created for each importer.

Se aplica a