Sobes.tech
Junior — Middle

Comment la durée de vie d'un objet est-elle déterminée après son enregistrement dans le conteneur d'injection de dépendances?

sobes.tech IA

Réponse de l'IA

La durée de vie d'un objet dans un conteneur d'injection de dépendances (DI) est déterminée par son cycle de vie (lifetime), qui est défini lors de l'enregistrement.

Les principales options de cycle de vie en C# (par exemple, dans Microsoft.Extensions.DependencyInjection) :

  • Transient : une nouvelle instance est créée à chaque requête.
  • Scoped : une instance est créée par scope (par exemple, par requête HTTP dans une application web).
  • Singleton : une instance est créée lors de la première requête et reste vivante jusqu'à la fin de l'application.

Exemple d'enregistrement d'un service avec différents temps de vie :

services.AddTransient<IMyService, MyService>(); // nouvel objet à chaque fois
services.AddScoped<IMyService, MyService>();   // un objet par session/demande
services.AddSingleton<IMyService, MyService>(); // un objet pendant toute la durée de l'application

Ainsi, la durée de vie d'un objet dépend du cycle de vie choisi lors de l'enregistrement dans le conteneur DI.