Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 21356|Resposta: 1

[Fonte] Autofac eficiente em IoC

[Copiar link]
Publicado em 13/09/2016 13:14:12 | | |
IoC ~ Autofac eficiente

Não há dúvida de que o contêiner favorito da Microsoft para IoC não é spring.net, Unity, mas o Autofac, por sua eficiência, por sua simplicidade, e por isso também é usado em projetos de pomares liderados pela Microsoft

ilustra o uso de um Autofac.


Vamos chamar agora:

Na próxima aula, falarei sobre o uso do Autofac em projetos específicos para projetos de pomar.

Agora olhe para seu ciclo de vida

1、DependênciaPerInstância

Crie uma nova instância única para cada dependência ou chamada. Essa também é a forma padrão de criar instâncias.

A documentação oficial explica: Configure o componente para que cada componente dependente ou chamada ao Resolve() receba uma nova instância única (padrão).

2、InstancePerLifetimeScope

Em um domínio de ciclo de vida, cada dependência ou chamada cria uma única instância compartilhada, e para cada domínio diferente do ciclo de vida, a instância é única e não compartilhada.

Documentação oficial explica: Configure o componente para que todo componente dependente ou chamada ao Resolve() dentro de um único ILifetimeScope receba a mesma instância compartilhada. Componentes dependentes em diferentes escopos de vida terão instâncias diferentes.

3、InstancePerMatchingLifetimeScope

Em um domínio de ciclo de vida identificado, cada dependência ou chamada cria uma única instância compartilhada. Instâncias no domínio pai podem ser compartilhadas no domínio de identidade filho do domínio do ciclo de vida identificado. Se nenhum domínio de ciclo de vida identificado for encontrado em toda a hierarquia de herança, uma exceção é lançada: DependencyResolutionException.

A documentação oficial explica: Configure o componente para que todo componente dependente ou chamada para Resolve() dentro de um ILifetimeScope marcado com qualquer valor da tag fornecida receba a mesma instância compartilhada. Componentes dependentes em escopos de vida que são filhos do escopo marcado compartilharão a instância do pai. Se não houver escopo devidamente marcado na hierarquia, uma DependencyResolutionException é lançada.

4、InstancePerOwned

No ciclo de vida de uma instância criada por uma instância pertencente a um domínio do ciclo de vida, cada componente dependente ou chamada ao método Resolve() cria uma única instância compartilhada, e o domínio do ciclo de vida filho compartilha as instâncias no domínio do ciclo de vida pai. Se não for encontrado nenhum domínio adequado do ciclo de vida com instâncias filhos na hierarquia de herança, uma exceção é lançada: DependencyResolutionException.

A documentação oficial explica:

Configure o componente de modo que cada componente dependente ou chamada ao Resolve() dentro de um ILifetimeScope criado por uma instância própria receba a mesma instância compartilhada. Componentes dependentes em escopos de vida que são filhos do escopo de instância propriedade compartilharão a instância do pai. Se nenhum escopo de instância propriedade apropriado for encontrado na hierarquia, uma DependencyResolutionException é lançada.

5、Instância Única

Toda vez que você depende de um componente ou chama o método Resolve(), recebe a mesma instância compartilhada. Na verdade, é um modelo singleton.

A documentação oficial explica: Configure o componente para que todo componente dependente ou chamada para o Resolve() receba a mesma instância compartilhada.

6、InstancePerHttpRequest

No contexto de uma requisição Http, compartilhe uma instância de um componente. Disponível apenas para desenvolvimento asp.net MVC.





Anterior:ActionResult do MVC
Próximo:Dicionário Concorrente vs. Dicionário+Travamento - Dennis Gao
 Senhorio| Publicado em 13/09/2016 13:15:50 |
Método de instalação de nugets:

Instalar o Autofac

Autofac do Install-Pacote
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com