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

Vista: 2964|Resposta: 0

[Fonte] ASP.NET Dependências Core (vinte e cinco) injetam inicialização preguiçosa preguiçosa

[Copiar link]
Publicado em 10/10/2023 21:14:31 | | | |
Requisitos: Adicionar serviços ASP.NET Core, injetar serviços por meio de construtores e querer atrasar a inicialização da classe de implementação (processamento lógico diferente de acordo com a informação de requisição do contexto HTTP), e pensar em usar Lazy<T> para Lazy for lazy inicialization.

Revisar:

Como a preguiça em C# mantém os threads seguros
https://www.itsvse.com/thread-10621-1-1.html

Otimização de desempenho em C#: Preguiçoso inicializa preguiçoso com <T>atraso
https://www.itsvse.com/thread-7700-1-1.html
Injetar diretamente na interface

O construtor é injetado diretamente no serviço de interface, e o código é o seguinte:

A ordem de execução é a seguinte:



Você pode ver a seguinte ordem de execução: IA implementation class -> HomeController console -> index method

Inicialize com atraso preguiçoso

Se o construtor controlador mudar IA para Lazy<IA>, o erro será o seguinte:

InvalidOperationException: Unable to resolve service for type 'System.Lazy`1[WebApplication6.IA]' while attempting to activate 'WebApplication6.Controllers.HomeController'.
O erro se deve ao fato de que não nos registramos para serviços relacionados a Preguiçosos, precisamos registrar um serviço genérico<> Preguiçoso, cujo código é o seguinte:

Adicionar ao serviço:

A ordem de execução é a seguinte:



Você pode ver a ordem de execução: HomeController console -> método Index -> IA implementation class, você pode verInicialização do atraso da interface IAInstanciará o objeto de implementação IA quando chamado.

(Fim)





Anterior:CIDR: Leia a descrição do endereço do CIDR em um artigo
Próximo:A interface armazena o pacote localForage do IndexedDB
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