Inyección de Dependencia Tiempo de vida de una instancia
En la inyección de dependencias (DI), el "tiempo de vida" se refiere a cuánto tiempo se mantiene en memoria una instancia de un servicio antes de que se descarte y se crea una nueva instancia. Los diferentes tiempos de vida de los servicios controlan cómo se administran las dependencias y cuántas instancias de un servicio se crean durante el ciclo de vida de una aplicación. Los tiempos de vida más comunes son: Transient: Una nueva instancia del servicio se crea cada vez que se solicita. Cada vez que se inyecta o se resuelve el servicio, se crea una nueva instancia independiente. Esto es útil cuando se necesita una nueva instancia en cada solicitud. Scoped: Se crea una instancia única del servicio por cada ámbito o alcance. Por lo general, un alcance está asociado con una solicitud HTTP en aplicaciones web de ASP.NET Core. En una solicitud, todas las partes de la solicitud que necesitan el mismo servicio obtienen la misma instancia, pero diferentes solicitudes obtienen instancias separadas. Esto es útil para compartir datos durante el ciclo de vida de una solicitud. Singleton: Se crea una única instancia del servicio y se reutiliza en toda la aplicación. Esta instancia se mantiene en memoria desde el inicio de la aplicación hasta su finalización. Es útil para servicios que deben ser compartidos por todas las partes de la aplicación y cuya creación es costosa. Instance: Esta opción permite que el usuario proporcione una instancia específica del servicio. En lugar de que el contenedor cree la instancia, se utiliza la instancia proporcionada. La elección del tiempo de vida depende de las necesidades de tu aplicación: Usa Transient cuando necesites una nueva instancia cada vez que se solicite. Esto es común para objetos ligeros que no tienen estado compartido. Usa Scoped en aplicaciones web de ASP.NET Core para compartir datos entre componentes de una misma solicitud. Usa Singleton para servicios que deben ser compartidos en toda la aplicación y que no tienen estado mutable. Instance se utiliza cuando deseas proporcionar manualmente una instancia específica del servicio.
Comentarios
Publicar un comentario