Junior — Middle
Hogyan határozzák meg egy objektum élettartamát a Dependency Injection mechanizmusán keresztül történő bevezetés után?
sobes.tech MI
Válasz az MI-től
A Dependency Injection (DI) segítségével létrehozott objektum élettartamát a lifetime (élettartam) határozza meg, amelyet a szolgáltatás regisztrálásakor állítanak be a DI-konténerben. C#-ban (például ASP.NET Core-ban) három fő élettartam típus létezik:
- Transient — minden szolgáltatás kéréskor új példány jön létre.
- Scoped — egy példány jön létre egy scope-ra (például HTTP kérésre), és ezen belül újra felhasználható.
- Singleton — egy példány jön létre az első kéréskor, és az alkalmazás végéig él.
Regisztrációs példa:
services.AddTransient<IMyService, MyService>();
services.AddScoped<IMyService, MyService>();
services.AddSingleton<IMyService, MyService>();
Így az objektum élettartama a regisztráláskor kiválasztott élettartamtól függ a DI-konténerben.