# Dependency Injection (.NET) > Lifetime dei servizi (singleton, scoped, transient), registrazione dei servizi, IServiceProvider, best practice - 24 domande da colloquio - Mid-Level - [Domande da colloquio: .NET](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio.md) ## 1. Qual è la differenza principale tra i lifetime Singleton, Scoped e Transient? **Risposta** Singleton crea una singola istanza per l'intero lifetime dell'applicazione, Scoped crea un'istanza per richiesta HTTP (o scope) e Transient crea una nuova istanza ogni volta che viene iniettato. Questi lifetime determinano quando e quante volte il container DI istanzia un servizio. Usa Singleton per servizi stateless condivisi, Scoped per servizi legati a una richiesta (come DbContext) e Transient per servizi leggeri stateless. ## 2. Quale lifetime usare per registrare un DbContext di Entity Framework Core? **Risposta** Il DbContext deve essere registrato con lifetime Scoped perché non è thread-safe e mantiene uno stato di tracking delle entità. Ogni richiesta HTTP deve avere la propria istanza di DbContext per evitare problemi di concorrenza. La registrazione avviene con AddDbContext, che configura automaticamente il lifetime Scoped. Usare Singleton causerebbe errori di concorrenza e Transient sprecherebbe risorse creando troppe istanze. ## 3. Come registrare un servizio con un'interface e la sua implementazione? **Risposta** La registrazione di un servizio avviene con i metodi AddSingleton, AddScoped o AddTransient, specificando l'interface come tipo di servizio e la classe concreta come implementazione. La sintassi è services.Add{Lifetime}(). Questo approccio rispetta il principio di inversione delle dipendenze e facilita i test consentendo la sostituzione delle implementazioni. Il container DI risolverà automaticamente l'implementazione concreta durante l'iniezione dell'interface. ## Altre 21 domande disponibili - In quale caso conviene preferire AddSingleton rispetto a AddScoped? - Qual è il ruolo di IServiceProvider nel sistema di DI? Registrati gratis: https://sharpskill.dev/it/login ## Altri argomenti di colloquio .NET - [Fondamenti di C#](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/csharp-basics.md): 25 domande, Junior - [LINQ & Delegates](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/csharp-linq-delegates.md): 20 domande, Junior - [Fondamenti del linguaggio C#](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/csharp-language-essentials.md): 15 domande, Junior - [Fondamenti di ASP.NET Core](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/aspnet-core-fundamentals.md): 18 domande, Junior - [Ciclo di vita delle richieste in ASP.NET Core](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/aspnet-core-request-lifecycle.md): 20 domande, Junior - [Configuration & Settings](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/configuration-settings.md): 20 domande, Junior - [Ciclo di vita dell'applicazione](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/application-lifecycle.md): 20 domande, Junior - [Entity Framework Core](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/entity-framework-core.md): 25 domande, Mid-Level - [Minimal APIs](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/minimal-apis.md): 18 domande, Mid-Level - [Sviluppo di Web API](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/web-api-development.md): 22 domande, Mid-Level - [Async in ASP.NET Core](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/async-aspnet-core.md): 20 domande, Mid-Level - [Authentication & Authorization](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/authentication-authorization.md): 18 domande, Mid-Level - [HttpClient & Networking](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/httpclient-networking.md): 20 domande, Mid-Level - [Serializzazione JSON](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/json-serialization.md): 20 domande, Mid-Level - [Entity Framework Core avanzato](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/ef-core-advanced.md): 25 domande, Mid-Level - [Funzionalità avanzate di C#](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/csharp-advanced-features.md): 20 domande, Mid-Level - [Clean Architecture](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/clean-architecture.md): 20 domande, Mid-Level - [Logging, Monitoring & Observability](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/logging-monitoring.md): 22 domande, Mid-Level - [Test unitari & xUnit](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/unit-testing-xunit.md): 20 domande, Mid-Level - [Test di integrazione](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/integration-testing.md): 18 domande, Mid-Level - [Docker & Containerization](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/docker-containerization.md): 16 domande, Mid-Level - [Gestione dei pacchetti NuGet](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/nuget-package-management.md): 16 domande, Mid-Level - [Memory Management & GC](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/memory-management-gc.md): 22 domande, Senior - [Programmazione reattiva](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/reactive-programming.md): 24 domande, Senior - [Async/await & Pattern](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/async-await-patterns.md): 26 domande, Senior - [.NET Design Patterns](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/dotnet-design-patterns.md): 24 domande, Senior - [Ottimizzazione delle prestazioni](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/performance-optimization.md): 22 domande, Senior - [Sicurezza e Best Practices](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/security-best-practices.md): 24 domande, Senior - [SignalR e tempo reale](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/signalr-realtime.md): 22 domande, Senior - [Architettura a Microservizi](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/microservices-architecture.md): 25 domande, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/dependency-injection