Junior — Middle
¿Cómo se determina la duración de la existencia de un objeto después de su registro en el contenedor de inyección de dependencias?
sobes.tech AI
Respuesta de la IA
La duración de un objeto en un contenedor de inyección de dependencias (DI) se determina por su ciclo de vida (lifetime), que se establece durante el registro.
Las principales opciones de ciclo de vida en C# (por ejemplo, en Microsoft.Extensions.DependencyInjection):
- Transient: se crea una nueva instancia en cada solicitud.
- Scoped: se crea una instancia por ámbito (por ejemplo, por solicitud HTTP en una aplicación web).
- Singleton: se crea una instancia en la primera solicitud y vive hasta que la aplicación termina.
Ejemplo de registro de un servicio con diferentes tiempos de vida:
services.AddTransient<IMyService, MyService>(); // nuevo objeto cada vez
services.AddScoped<IMyService, MyService>(); // un objeto por sesión/solicitud
services.AddSingleton<IMyService, MyService>(); // un objeto durante toda la vida de la aplicación
Por lo tanto, la duración de un objeto depende del ciclo de vida elegido al registrarlo en el contenedor DI.