Sobes.tech
Junior — Middle

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.