.NET

Dependency Injection

Lifetimes de servicios (singleton, scoped, transient), registro de servicios, IServiceProvider, buenas prácticas

24 preguntas de entrevista·
Mid-Level
1

¿Cuál es la principal diferencia entre los lifetimes Singleton, Scoped y Transient?

Respuesta

Singleton crea una única instancia durante toda la vida de la aplicación, Scoped crea una instancia por petición HTTP (o scope), y Transient crea una nueva instancia cada vez que se inyecta. Estos lifetimes determinan cuándo y cuántas veces el contenedor DI instancia un servicio. Usa Singleton para servicios sin estado compartidos, Scoped para servicios ligados a una petición (como DbContext), y Transient para servicios ligeros sin estado.

2

¿Qué lifetime se debe usar para registrar un DbContext de Entity Framework Core?

Respuesta

DbContext debe registrarse con lifetime Scoped porque no es thread-safe y mantiene un estado de tracking de entidades. Cada solicitud HTTP debe tener su propia instancia de DbContext para evitar problemas de concurrencia. El registro se hace con AddDbContext, que configura automáticamente el lifetime Scoped. Usar Singleton causaría errores de concurrencia y Transient desperdiciaría recursos al crear demasiadas instancias.

3

¿Cómo registrar un servicio con una interface y su implementación?

Respuesta

El registro de un servicio se hace con los métodos AddSingleton, AddScoped o AddTransient, especificando la interface como tipo de servicio y la clase concreta como implementación. La sintaxis es services.Add{Lifetime}<IInterface, Implementation>(). Este enfoque respeta el principio de inversión de dependencias y facilita las pruebas al permitir sustituir implementaciones. El contenedor DI resolverá automáticamente la implementación concreta al inyectar la interface.

4

¿En qué caso conviene preferir AddSingleton en lugar de AddScoped?

5

¿Cuál es el papel de IServiceProvider en el sistema de DI?

+21 preguntas de entrevista

Domina .NET para tu próxima entrevista

Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.

Empieza gratis