Junior — Middle
შეგიძლიათ დაასახელოთ სხვა ტიპის ობიექტების ციკლები, რომლებიც გამოიყენება IoC კონტეინერებში, singleton-ის გარდა?
sobes.tech AI
პასუხი AI-სგან
IoC კონტეინერებში, გარდა Singleton ცხოვრების ციკლის, ხშირად გამოიყენება შემდეგი ობიექტების ცხოვრების ციკლის ტიპები:
- Transient (გადამწყვეტი): თითოეული ობიექტის მოთხოვნა ქმნის ახალ მაგალითს. გამოიყენება, როდესაც საჭიროა ახალი, სტატუსის გარეშე ობიექტი.
- Scoped (საზღვარი): ობიექტი ქმნება ერთხელ განსაზღვრულ საზღვრებში, მაგალითად, ერთ HTTP მოთხოვნაზე ვებ-აპლიკაციებში. საზღვრის დასრულების შემდეგ, ობიექტი განადგურდება.
- Per Thread (თითოეული ნაკადი): ობიექტი ქმნება ერთხელ თითოეულ ნაკადზე, მრავალნაკადიანი აპლიკაციებისათვის სასარგებლო.
C# მაგალითი Microsoft.Extensions.DependencyInjection-ის გამოყენებით:
services.AddSingleton<IMyService, MyService>(); // Singleton
services.AddTransient<IMyService, MyService>(); // გადამწყვეტი
services.AddScoped<IMyService, MyService>(); // საზღვარი