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: 2964|Respuesta: 0

[Fuente] ASP.NET Dependencias Core (veinticinco) inyectan inicialización de Lazy lazy lazy

[Copiar enlace]
Publicado en 10/10/2023 21:14:31 | | | |
Requisitos: Añadir servicios ASP.NET Core, inyectar servicios a través de constructores y querer retrasar la inicialización de la clase de implementación (procesamiento lógico diferente según la información de la solicitud del contexto HTTP), y pensar en usar Lazy<T> para lazy para inicialización lenta.

Revisión:

Cómo es perezoso en C# que mantiene los hilos seguros
https://www.itsvse.com/thread-10621-1-1.html

Optimización de rendimiento en C#: Lazy inicializa lazy con <T>un delay
https://www.itsvse.com/thread-7700-1-1.html
Inyecta directamente en la interfaz

El constructor se inyecta directamente en el servicio de interfaz, y el código es el siguiente:

El orden de ejecución es el siguiente:



Puedes ver el siguiente orden de ejecución: IA implementation class -> HomeController console -> index method

Inicializar con retraso perezoso

Si el constructor controlador cambia IA a Lazy<IA>, el error se verá así:

InvalidOperationException: Unable to resolve service for type 'System.Lazy`1[WebApplication6.IA]' while attempting to activate 'WebApplication6.Controllers.HomeController'.
El error se debe a que no nos hemos registrado para servicios relacionados con Perezosos, necesitamos registrar un servicio genérico <> Perezoso, cuyo código es el siguiente:

Añadir al servicio:

El orden de ejecución es el siguiente:



Puedes ver el orden de ejecución: HomeController consola -> método índice -> clase de implementación IA, puedes verloInicialización de retardo de la interfaz IAinstanciará el objeto de implementación IA cuando se llame.

(Fin)





Anterior:CIDR: Lee la descripción de la dirección CIDR en un artículo
Próximo:El front-end almacena el paquete localForage de IndexedDB
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