Partilhar via


CreationPolicy Enumeração

Definição

Especifica quando e como uma parte será instanciada.

public enum class CreationPolicy
public enum CreationPolicy
type CreationPolicy = 
Public Enum CreationPolicy
Herança
CreationPolicy

Campos

Any 0

Especifica que o CompositionContainer usará o CreationPolicy mais apropriado para a parte, considerando o contexto atual. Esse é o CreationPolicy padrão. Por padrão, CompositionContainer usará Shared, a menos que o ComposablePart ou o importador solicite NonShared.

NonShared 2

Especifica que uma única instância não compartilhada do ComposablePart associado será criada pelo CompositionContainer para cada solicitante.

Shared 1

Especifica que uma única instância compartilhada do ComposablePart associado será criada pelo CompositionContainer e compartilhada por todos os solicitantes.

Comentários

No curso da composição, as CompositionContainer instâncias de necessidades dos objetos descritos pelas exportações para preencher as importações. Se uma exportação for usada para preencher várias importações, haverá dois comportamentos possíveis. Uma única instância do objeto exportado é criada e uma referência ao mesmo objeto é dada a cada importador ou uma instância separada do objeto exportado é criada para cada importador.

Qual comportamento ocorre depende da CreationPolicy propriedade do PartCreationPolicyAttribute anexado à exportação e do RequiredCreationPolicyImportAttributedo . Ambos conterão um valor da CreationPolicy enumeração . Se as políticas forem incompatíveis, essa exportação não será considerada uma correspondência para a importação fornecida. A tabela a seguir resume a interação dessas duas propriedades.

RequiredCreationPolicy Export's CreationPolicy especifica Any ou none especificado. CreationPolicy Exportar especifica Compartilhado Export's CreationPolicy especifica NonShared
Qualquer Uma instância única, compartilhada, do objeto exportado será criada. Uma instância única, compartilhada, do objeto exportado será criada. Uma nova instância do objeto exportado será criada para cada importador.
Compartilhado Uma instância única, compartilhada, do objeto exportado será criada. Uma instância única, compartilhada, do objeto exportado será criada. A exportação não será considerada uma correspondência para a importação.
Compartilhada Uma nova instância do objeto exportado será criada para cada importador. A exportação não será considerada uma correspondência para a importação. Uma nova instância do objeto exportado será criada para cada importador.

Aplica-se a