Junior — Middle
Wie wird die Lebensdauer eines Objekts nach seiner Implementierung durch den Dependency Injection-Mechanismus bestimmt?
sobes.tech KI
Antwort von AI
Die Lebensdauer eines Objekts, das durch Dependency Injection (DI) erstellt wurde, wird durch die Lebenszeit (lifetime) bestimmt, die bei der Registrierung des Dienstes im DI-Container festgelegt wird. In C# (zum Beispiel in ASP.NET Core) gibt es drei Haupttypen der Lebenszeit:
- Transient — eine neue Instanz wird bei jeder Service-Anfrage erstellt.
- Scoped — eine Instanz wird pro Bereich (z.B. pro HTTP-Anfrage) erstellt und innerhalb dieses Bereichs wiederverwendet.
- Singleton — eine Instanz wird bei der ersten Anfrage erstellt und lebt bis zum Ende der Anwendung.
Beispiel für die Registrierung:
services.AddTransient<IMyService, MyService>();
services.AddScoped<IMyService, MyService>();
services.AddSingleton<IMyService, MyService>();
Daher hängt die Lebensdauer des Objekts von der bei der Registrierung gewählten Lebenszeit im DI-Container ab.