Sobes.tech
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 ახალი მაგალითი ყოველ მოთხოვნაზე რამდენიმე (ყოველ ინექციაზე)