
Dependency Injection
Lifetimes de servicios (singleton, scoped, transient), registro de servicios, IServiceProvider, buenas prácticas
1¿Cuál es la principal diferencia entre los lifetimes Singleton, Scoped y Transient?
¿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?
¿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?
¿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.
¿En qué caso conviene preferir AddSingleton en lugar de AddScoped?
¿Cuál es el papel de IServiceProvider en el sistema de DI?
+21 preguntas de entrevista
Otros temas de entrevista .NET
Fundamentos de C#
LINQ & Delegates
Fundamentos del lenguaje C#
Fundamentos de ASP.NET Core
Ciclo de vida de las solicitudes en ASP.NET Core
Configuration & Settings
Ciclo de vida de la aplicación
Entity Framework Core
Minimal APIs
Desarrollo de Web API
Async en ASP.NET Core
Authentication & Authorization
HttpClient & Networking
Serialización JSON
Entity Framework Core avanzado
Características avanzadas de C#
Clean Architecture
Logging, Monitoring & Observability
Pruebas unitarias y xUnit
Pruebas de integración
Docker & Containerization
NuGet Package Management
Memory Management & GC
Programación reactiva
Async/await & Patterns
.NET Design Patterns
Optimización del rendimiento
Seguridad y Best Practices
SignalR y tiempo real
Arquitectura de Microservicios
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