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

Vista: 57373|Resposta: 4

[Fonte] ASP.NET Core (VI) DI obtém manualmente o método de injeção de objetos

[Copiar link]
Postado em 19-03-2021 15:13:15 | | |
Tutorial sobre Injeção de Dependência de Núcleo ASP.NET, Inversão de Controle (DI-IOC):

ASP.NET Injeção de Dependência Core usa o contêiner IOC que vem com ele
https://www.itsvse.com/thread-7562-1-1.html


Revisar:

ASP.NET Core (cinco) é baseado em transações distribuídas CAP
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Validação unificada do modelo ModelState do filtro Core(4)
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Core (iii) Criar instâncias dinamicamente usando ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Núcleo (2) Reiniciar a aplicação por código
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) usa cache Redis
https://www.itsvse.com/thread-9393-1-1.html
Injeção de dependências em resumo:

A injeção de dependências (DI) é uma técnica que implementa acoplamento frouxo entre um objeto e seus colaboradores ou dependências. Forneça esses objetos que a classe usa para realizar suas operações para a classe de alguma forma, em vez de instanciar diretamente colaboradores ou usar referências estáticas.

ASP.NET Core DI geralmente usa injeção de construtores para obter objetos, como após configurar a injeção ConfigureServices, ela pode ser obtida das seguintes maneiras:


E se você pegar manualmente o objeto de injeção?

A primeira forma de conseguir(Às vezes você não consegue,Não recomendado):


A segunda forma de conseguirUso recomendado):

Nota: Deve-se notar que usando ServiceLocator.Instance.GetService<T>(); ,Somente objetos injetados por AddTransient e AddSingleton podem ser obtidos, e não pode obter o objeto injetado do AddScoped (único no ciclo de vida da requisição), não porque não possa ser obtido, mas porque o objeto adquirido não é obtido pelo construtor, ou seja, o objeto adquirido não é compartilhado, e o cenário de uso é como IUnitOfWork.

Então, como você obtém manualmente os objetos de injeção durante o ciclo de vida da requisição? Veja como:


ou

A interface IHttpContextAccessor está sob o pacote Microsoft.AspNetCore.Http.AbstractionsNuget.




Anterior:HttpClient POST diretamente para enviar solicitações de compressão por byte byte (gzip)
Próximo:A diferença entre o compilador Roslyn MSBuild
Postado em 2021-9-22 20:43:14 |
Aprenda a aprender...
Postado em 2021-9-22 20:55:17 |
Aprenda a aprender...
Postado em 17-06-2022 às 16:05:39 |
Aprenda a usá-lo
 Senhorio| Postado em 30-12-2024 17:09:09 |
O console injeta a interface IHttpContextAccessor:



Os serviços de console .NET/C# são registrados com a descoberta de serviços Consul
https://www.itsvse.com/thread-10899-1-1.html
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