Junior — Middle
IoC konteynerlarida foydalaniladigan obyektlarning boshqa turdagi hayot aylanishlarini, singletondan tashqari, nomlaya olasizmi?
sobes.tech AI
AIdan javob
IoC контейнерида Singleton ҳаёт циклидан ташқари, қуйидаги объектлар ҳаёт цикли турлари кўп ҳолларда қўлланилади:
- Transient (Ўтказгич): ҳар бир объект сўрови янги нусха яратади. Холатни сақламасдан янги объект керак бўлганда қўлланилади.
- Scoped (Область): объект белгиланган ҳудуд учун бир марта яратилади, масалан, веб-илмаларда бир HTTP сўрови учун. Ҳудуд тугаши билан объект йўқ қилинади.
- Per Thread (Ҳар бир иш парчаси учун): объект ҳар бир иш парчаси учун бир марта яратилади, кўп иш парчасига эга иловалар учун фойдали.
C#да Microsoft.Extensions.DependencyInjection билан мисол:
services.AddSingleton<IMyService, MyService>(); // Singleton
services.AddTransient<IMyService, MyService>(); // Ўтказгич
services.AddScoped<IMyService, MyService>(); // Область