Middle
რა მიზნით გამოიყენება სერვისების კონფიგურაციის მეთოდები C#-ში?
sobes.tech AI
პასუხი AI-სგან
დამოკიდებულებების რეგისტრაცია დამოკიდებულების ინექციის კონტეინერში. ეს საშუალებას აძლევს აპლიკაციის ინფრასტრუქტურას მართოს სერვისების მაგალითების შექმნა და ჩასმა საჭირო ადგილებში.
ძირითადი მიზნები:
- ცხოვრების ციკლის მართვა: სერვისის მაგალითის არსებობის დროის განსაზღვრა (Singleton, Scoped, Transient).
- გამოყოფილი არქიტექტურა: კომპონენტებს შორის კავშირის შემცირება აბსტრაქციების (ინტერფეისების) გამოყენებით.
- ტესტირებადობა: სერვისების რეალიზაციების მარტივი შეცვლა მოდულური ტესტირებისათვის.
- კონფიგურაცია: ერთ რეალიზაციას სხვა რეალიზაციით შეცვლის შესაძლებლობა, მომხმარებლის კოდის შეცვლის გარეშე.
ASP.NET Core-ში სერვისების რეგისტრაციის მაგალითი:
// Startup.cs ან Program.cs - Minimal APIs-ში
public void ConfigureServices(IServiceCollection services)
{
// სერვისის რეგისტრაცია Singleton სიცოცხლის ციკლით
services.AddSingleton<ISingletonService, SingletonService>();
// სერვისის რეგისტრაცია Scoped სიცოცხლის ციკლით
services.AddScoped<IScopedService, ScopedService>();
// სერვისის რეგისტრაცია Transient სიცოცხლის ციკლით
services.AddTransient<ITransientService, TransientService>();
// MVC და სხვა სტანდარტული სერვისების რეგისტრაცია
services.AddControllersWithViews();
}
სერვისების სიცოცხლის ციკლები:
| სიცოცხლის ციკლი | აღწერა | ერთი მოთხოვნის (HTTP) ფარგლებში მაგალითების რაოდენობა |
|---|---|---|
| Singleton | ერთი მაგალითი მთელი პროგრამის განმავლობაში | ერთი |
| Scoped | ერთი მაგალითი მოთხოვნის (HTTP) განმავლობაში | ერთი |
| Transient | ახალი მაგალითი ყოველ მოთხოვნაზე | რამდენიმე (ყოველ ინექციაზე) |