CreationPolicy Enumeración

Definición

Especifica cuándo y cómo se va a inicializar un elemento.

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

Campos

Any 0

Especifica que CompositionContainer usará la CreationPolicy más adecuada para el elemento según el contexto actual. Es la CreationPolicy predeterminada. De forma predeterminada, CompositionContainer usará Shared, a menos que ComposablePart o el importador solicite NonShared.

NonShared 2

Especifica que ComposablePart creará una nueva instancia no compartida del CompositionContainer asociado para cada solicitante.

Shared 1

Especifica que una única instancia compartida del ComposablePart asociado será creada por CompositionContainer y compartida por todos los solicitantes.

Comentarios

En el transcurso de la composición, necesita CompositionContainer instancias de los objetos descritos por las exportaciones para rellenar las importaciones. Si se usa una exportación para rellenar varias importaciones, hay dos comportamientos posibles. Se crea una única instancia del objeto exportado y se asigna una referencia al mismo objeto a cada importador, o se crea una instancia independiente del objeto exportado para cada importador.

El comportamiento que se produce depende de la CreationPolicy propiedad de adjunta PartCreationPolicyAttribute a la exportación y de RequiredCreationPolicy .ImportAttribute Ambos contendrán un valor de la CreationPolicy enumeración . Si las directivas no son compatibles, esa exportación no se considerará una coincidencia para la importación especificada. En la tabla siguiente se resume la interacción de estas dos propiedades.

RequiredCreationPolicy CreationPolicy Export especifica Any o none specified. Export's CreationPolicy especifica Shared CreationPolicy Export especifica NonShared
Any Se creará una única instancia compartida del objeto exportado. Se creará una única instancia compartida del objeto exportado. Se creará una nueva instancia del objeto exportado para cada importador.
Compartido Se creará una única instancia compartida del objeto exportado. Se creará una única instancia compartida del objeto exportado. La exportación no se considerará una coincidencia para la importación.
No compartido Se creará una nueva instancia del objeto exportado para cada importador. La exportación no se considerará una coincidencia para la importación. Se creará una nueva instancia del objeto exportado para cada importador.

Se aplica a