Junior — Middle
Hoe wordt de levensduur van een object bepaald nadat het is geregistreerd in de dependency injection container?
sobes.tech AI
Antwoord van AI
De levensduur van een object in een dependency injection (DI) container wordt bepaald door de lifecycle (lifetime), die wordt ingesteld tijdens de registratie.
De belangrijkste lifecycle-opties in C# (bijvoorbeeld in Microsoft.Extensions.DependencyInjection):
- Transient: een nieuw exemplaar wordt bij elke aanvraag gemaakt.
- Scoped: één exemplaar wordt per scope gemaakt (bijvoorbeeld per HTTP-verzoek in een webapplicatie).
- Singleton: één exemplaar wordt bij de eerste aanvraag gemaakt en blijft bestaan tot het einde van de applicatie.
Voorbeeld van het registreren van een service met verschillende leeftijden:
services.AddTransient<IMyService, MyService>(); // nieuw object elke keer
services.AddScoped<IMyService, MyService>(); // één object per sessie/verzoek
services.AddSingleton<IMyService, MyService>(); // één object gedurende de hele levensduur
Dus, de levensduur van een object hangt af van de gekozen lifecycle bij registratie in de DI-container.