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.