Sobes.tech
Junior — Middle

Wie wird die Lebensdauer eines Objekts nach seiner Registrierung im Dependency Injection Container bestimmt?

sobes.tech KI

Antwort von AI

Die Lebensdauer eines Objekts in einem Dependency Injection (DI)-Container wird durch seinen Lebenszyklus (lifetime) bestimmt, der bei der Registrierung festgelegt wird.

Die wichtigsten Lebenszyklus-Optionen in C# (z.B. in Microsoft.Extensions.DependencyInjection):

  • Transient: Eine neue Instanz wird bei jeder Anfrage erstellt.
  • Scoped: Eine Instanz wird pro Bereich erstellt (z.B. pro HTTP-Anfrage in einer Webanwendung).
  • Singleton: Eine Instanz wird bei der ersten Anfrage erstellt und lebt bis zum Ende der Anwendung.

Beispiel für die Registrierung eines Dienstes mit unterschiedlichen Lebensdauern:

services.AddTransient<IMyService, MyService>(); // Neues Objekt bei jedem Aufruf
services.AddScoped<IMyService, MyService>();   // Ein Objekt pro Sitzung/Anfrage
services.AddSingleton<IMyService, MyService>(); // Ein Objekt für die gesamte Laufzeit

Daher hängt die Lebensdauer eines Objekts vom gewählten Lebenszyklus bei der Registrierung im DI-Container ab.