Junior — Middle
Jak określa się okres istnienia obiektu po jego wdrożeniu za pomocą mechanizmu Dependency Injection?
sobes.tech AI
Odpowiedź od AI
Czas życia obiektu utworzonego za pomocą Dependency Injection (DI) jest określany przez czas życia (lifetime), który jest ustawiany podczas rejestracji usługi w kontenerze DI. W C# (np. w ASP.NET Core) istnieją trzy główne typy czasu życia:
- Transient — nowy egzemplarz jest tworzony przy każdym żądaniu usługi.
- Scoped — jeden egzemplarz jest tworzony na zakres (np. na żądanie HTTP) i jest używany wielokrotnie w ramach tego zakresu.
- Singleton — jeden egzemplarz jest tworzony przy pierwszym żądaniu i żyje do zakończenia działania aplikacji.
Przykład rejestracji:
services.AddTransient<IMyService, MyService>();
services.AddScoped<IMyService, MyService>();
services.AddSingleton<IMyService, MyService>();
W związku z tym, czas życia obiektu zależy od wybranego czasu życia podczas rejestracji w kontenerze DI.