Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 57373|Respuesta: 4

[Fuente] ASP.NET Core (VI) DI obtiene manualmente el método de inyectar objetos

[Copiar enlace]
Publicado el 19-3-2021 15:13:15 | | |
Tutorial sobre ASP.NET Inyección de Dependencia Central, Inversión de Control (DI-IOC):

ASP.NET Core Dependency Injection utiliza el contenedor IOC que viene con ella
https://www.itsvse.com/thread-7562-1-1.html


Revisión:

ASP.NET Core (cinco) se basa en transacciones distribuidas CAP
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Validación unificada de modelos de modelo del filtro Core(4)
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Core (iii) Crear dinámicamente instancias usando ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Núcleo (2) Reiniciar la aplicación por código
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) utiliza caché Redis
https://www.itsvse.com/thread-9393-1-1.html
Inyección de dependencias en pocas palabras:

La inyección de dependencias (DI) es una técnica que implementa un acoplamiento laxa entre un objeto y sus colaboradores o dependencias. Proporciona estos objetos que la clase utiliza para realizar sus operaciones de alguna manera, en lugar de instanciar directamente a colaboradores o usar referencias estáticas.

ASP.NET Core DI generalmente utiliza inyección de constructores para obtener objetos, por ejemplo tras configurar la inyección ConfigureServices, puede obtenerse de las siguientes maneras:


¿Y si consigues manualmente el objeto de inyección?

La primera forma de conseguirlo(A veces no se puede conseguir,No recomendado):


La segunda forma de conseguirloUso recomendado):

Nota: Cabe señalar que usando ServiceLocator.Instance.GetService<T>(; ,Solo se pueden obtener objetos inyectados por AddTransient y AddSingleton, y no puede obtener el objeto inyectado de AddScoped (único en el ciclo de vida de la solicitud), no porque no pueda obtenerse, sino porque el objeto adquirido no es obtenido por el constructor, es decir, el objeto adquirido no es compartido, y el escenario de uso es como IUnitOfWork.

Entonces, ¿cómo se obtienen manualmente los objetos de inyección durante el ciclo de vida de la solicitud? Así es como:


o

La interfaz IHttpContextAccessor está bajo el paquete Microsoft.AspNetCore.Http.AbstractionsNuget.




Anterior:HttpClient POST directamente para enviar solicitudes de compresión por byte byte (gzip)
Próximo:La diferencia entre el compilador Roslyn MSBuild
Publicado el 2021-9-22 20:43:14 |
Aprende a aprender...
Publicado el 2021-9-22 20:55:17 |
Aprende a aprender...
Publicado el 17-6-2022 16:05:39 |
Aprende a usarlo
 Propietario| Publicado el 30-12-2024 17:09:09 |
La consola inyecta la interfaz IHttpContextAccessor:



Los servicios de consola .NET/C# están registrados con Consul Service Discovery
https://www.itsvse.com/thread-10899-1-1.html
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com