Sobes.tech
Junior — Middle

Come viene determinato il periodo di vita di un oggetto dopo la sua implementazione tramite il meccanismo di Dependency Injection?

sobes.tech AI

Risposta dell'AI

La durata di vita di un oggetto creato tramite Dependency Injection (DI) è determinata dal tempo di vita (lifetime), che viene impostato durante la registrazione del servizio nel contenitore DI. In C# (ad esempio, in ASP.NET Core), ci sono tre principali tipi di durata di vita:

  • Transient — viene creata una nuova istanza ad ogni richiesta di servizio.
  • Scoped — viene creata un'istanza per ambito (ad esempio, per richiesta HTTP) e riutilizzata all'interno di quell'ambito.
  • Singleton — viene creata un'istanza alla prima richiesta e vive fino alla fine dell'applicazione.

Esempio di registrazione:

services.AddTransient<IMyService, MyService>();
services.AddScoped<IMyService, MyService>();
services.AddSingleton<IMyService, MyService>();

Pertanto, la durata di vita dell'oggetto dipende dal tempo di vita scelto durante la registrazione nel contenitore DI.