
Dependency Injection
Service-lifetimes (singleton, scoped, transient), serviceregistratie, IServiceProvider, best practices
1Wat is het belangrijkste verschil tussen de lifetimes Singleton, Scoped en Transient?
Wat is het belangrijkste verschil tussen de lifetimes Singleton, Scoped en Transient?
Antwoord
Singleton maakt één enkele instantie voor de hele applicatielevensduur, Scoped maakt één instantie per HTTP-verzoek (of scope), en Transient maakt elke keer dat het wordt geïnjecteerd een nieuwe instantie. Deze lifetimes bepalen wanneer en hoe vaak de DI-container een service instantieert. Gebruik Singleton voor stateless gedeelde services, Scoped voor request-gebonden services (zoals DbContext) en Transient voor lichtgewicht stateless services.
2Welke lifetime moet worden gebruikt om een Entity Framework Core DbContext te registreren?
Welke lifetime moet worden gebruikt om een Entity Framework Core DbContext te registreren?
Antwoord
DbContext moet worden geregistreerd met de Scoped lifetime omdat het niet thread-safe is en een trackingstatus van entiteiten bijhoudt. Elk HTTP-verzoek moet zijn eigen DbContext-instantie hebben om concurrentieproblemen te voorkomen. De registratie gebeurt met AddDbContext, dat automatisch de Scoped lifetime configureert. Singleton gebruiken zou concurrentiefouten veroorzaken en Transient zou bronnen verspillen door te veel instanties te maken.
3Hoe registreer je een service met een interface en de implementatie ervan?
Hoe registreer je een service met een interface en de implementatie ervan?
Antwoord
De registratie van een service gebeurt met de methoden AddSingleton, AddScoped of AddTransient, waarbij de interface als servicetype en de concrete klasse als implementatie wordt opgegeven. De syntaxis is services.Add{Lifetime}<IInterface, Implementation>(). Deze aanpak respecteert het dependency inversion-principe en vergemakkelijkt het testen door het vervangen van implementaties mogelijk te maken. De DI-container lost de concrete implementatie automatisch op bij het injecteren van de interface.
Wanneer verdient AddSingleton de voorkeur boven AddScoped?
Wat is de rol van IServiceProvider in het DI-systeem?
+21 gespreksvragen
Andere .NET-sollicitatieonderwerpen
C#-basisbeginselen
LINQ & Delegates
Essentials van de C#-taal
ASP.NET Core-grondbeginselen
Levenscyclus van requests in ASP.NET Core
Configuration & Settings
Levenscyclus van de applicatie
Entity Framework Core
Minimal APIs
Web API-ontwikkeling
Async in ASP.NET Core
Authentication & Authorization
HttpClient & Networking
JSON-serialisatie
Entity Framework Core gevorderd
Geavanceerde C#-functies
Clean Architecture
Logging, Monitoring & Observability
Unit Testing & xUnit
Integratietests
Docker & Containerization
NuGet-pakketbeheer
Memory Management & GC
Reactief programmeren
Async/await & Patterns
.NET Design Patterns
Prestatieoptimalisatie
Beveiliging & Best Practices
SignalR & realtime
Microservices-architectuur
Beheers .NET voor je volgende gesprek
Krijg toegang tot alle vragen, flashcards, technische tests, code review-oefeningen en gespreksimulatoren.
Begin gratis