Wat is het verschil tussen de scope van Scoped- en Transient-objecten in de context van Dependency Injection?
sobes.tech AI
Antwoord van AI
In de context van Dependency Injection in C# bepalen de scope- en transient-gebieden de levensduur van de gemaakte objecten:
-
Transient: het object wordt elke keer opnieuw gemaakt wanneer het wordt opgevraagd. Dit betekent dat bij elke service-aanroep of injectie een nieuw exemplaar wordt gemaakt.
-
Scoped: het object wordt één keer gemaakt gedurende de tijd van één aanvraag (scope). In webapplicaties betekent dit meestal dat binnen één HTTP-aanvraag hetzelfde exemplaar wordt gebruikt, maar voor een andere aanvraag wordt een nieuw exemplaar gemaakt.
Voorbeeld:
services.AddTransient<IMyService, MyService>(); // nieuw object bij elke aanvraag
services.AddScoped<IMyService, MyService>(); // één object per HTTP-aanvraag
Scoped is dus handig voor het opslaan van de staat binnen één aanvraag, terwijl Transient geschikt is voor stateless services, waar een nieuw exemplaar elke keer nodig is.