# Dependency Injection (.NET) > Service lifetimes (singleton, scoped, transient), service registration, IServiceProvider, best practices - 24 questions d'entretien - Confirmé - [Questions d'entretien: .NET](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien.md) ## 1. Quelle est la principale différence entre les lifetimes Singleton, Scoped et Transient ? **Réponse** Singleton crée une seule instance pour toute la durée de vie de l'application, Scoped crée une instance par requête HTTP (ou scope), et Transient crée une nouvelle instance à chaque injection. Ces lifetimes déterminent quand et combien de fois le conteneur DI instancie un service. Utiliser Singleton pour des services sans état partagés, Scoped pour des services liés à une requête (comme DbContext), et Transient pour des services légers sans état partagé. ## 2. Quel lifetime utiliser pour enregistrer un DbContext Entity Framework Core ? **Réponse** DbContext doit être enregistré avec un lifetime Scoped car il n'est pas thread-safe et maintient un état de tracking des entités. Chaque requête HTTP doit avoir sa propre instance de DbContext pour éviter les problèmes de concurrence. L'enregistrement se fait avec AddDbContext qui configure automatiquement le lifetime Scoped. Utiliser Singleton causerait des erreurs de concurrence, et Transient gaspillerait des ressources en créant trop d'instances. ## 3. Comment enregistrer un service avec une interface et son implémentation ? **Réponse** L'enregistrement d'un service se fait avec les méthodes AddSingleton, AddScoped ou AddTransient en spécifiant l'interface comme type de service et la classe concrète comme implémentation. La syntaxe est services.Add{Lifetime}(). Cette approche permet de respecter le principe de dépendance par abstraction et facilite les tests en permettant de substituer des implémentations. Le conteneur DI résoudra automatiquement l'implémentation concrète lors de l'injection de l'interface. ## 21 questions supplémentaires disponibles - Dans quel cas privilégier AddSingleton plutôt que AddScoped ? - Quel est le rôle de IServiceProvider dans le système de DI ? S'inscrire gratuitement: https://sharpskill.dev/fr/login ## Autres sujets d'entretien .NET - [Les bases de C#](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/csharp-basics.md): 25 questions, Junior - [LINQ & Delegates](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/csharp-linq-delegates.md): 20 questions, Junior - [Essentiels du langage C#](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/csharp-language-essentials.md): 15 questions, Junior - [Fondamentaux ASP.NET Core](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/aspnet-core-fundamentals.md): 18 questions, Junior - [Cycle de vie des requêtes ASP.NET Core](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/aspnet-core-request-lifecycle.md): 20 questions, Junior - [Configuration & Settings](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/configuration-settings.md): 20 questions, Junior - [Cycle de vie de l'application](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/application-lifecycle.md): 20 questions, Junior - [Entity Framework Core](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/entity-framework-core.md): 25 questions, Confirmé - [Minimal APIs](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/minimal-apis.md): 18 questions, Confirmé - [Développement Web API](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/web-api-development.md): 22 questions, Confirmé - [Async côté ASP.NET Core](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/async-aspnet-core.md): 20 questions, Confirmé - [Authentication & Authorization](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/authentication-authorization.md): 18 questions, Confirmé - [HttpClient & Networking](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/httpclient-networking.md): 20 questions, Confirmé - [Sérialisation JSON](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/json-serialization.md): 20 questions, Confirmé - [Entity Framework Core avancé](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/ef-core-advanced.md): 25 questions, Confirmé - [Fonctionnalités avancées C#](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/csharp-advanced-features.md): 20 questions, Confirmé - [Clean Architecture](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/clean-architecture.md): 20 questions, Confirmé - [Logging, Monitoring & Observability](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/logging-monitoring.md): 22 questions, Confirmé - [Tests unitaires & xUnit](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/unit-testing-xunit.md): 20 questions, Confirmé - [Tests d'intégration](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/integration-testing.md): 18 questions, Confirmé - [Docker & Containerization](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/docker-containerization.md): 16 questions, Confirmé - [NuGet Package Management](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/nuget-package-management.md): 16 questions, Confirmé - [Memory Management & GC](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/memory-management-gc.md): 22 questions, Senior - [Programmation réactive](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/reactive-programming.md): 24 questions, Senior - [Async/await & Patterns](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/async-await-patterns.md): 26 questions, Senior - [.NET Design Patterns](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/dotnet-design-patterns.md): 24 questions, Senior - [Optimisation des performances](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/performance-optimization.md): 22 questions, Senior - [Sécurité & Best Practices](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/security-best-practices.md): 24 questions, Senior - [SignalR & Real-time](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/signalr-realtime.md): 22 questions, Senior - [Architecture Microservices](https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/microservices-architecture.md): 25 questions, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/fr/technologies/dotnet/questions-entretien/dependency-injection