Sobes.tech
Middle

C# да кызматтарды конфигурациялоо ыкмалары эмне үчүн колдонулат?

sobes.tech AI

AIден жооп

Тәуелсіздік контейнеринде тәуелділіктерді тіркеу. Бұл қосымшаның инфрақұрылымына қызметтердің мысалдарын құруды басқаруға және оларды қажетті жерлерге енгізуге мүмкіндік береді.

Негізгі мақсаттар:

  • Өмірлік циклді басқару: Қызмет мысалының өмір сүру уақытын анықтау (Singleton, Scoped, Transient).
  • Ажыратылған архитектура: Абстракциялар (интерфейстер) арқылы компоненттер арасындағы байланысты азайту.
  • Тестілеу мүмкіндігі: Модульдік тестілеу үшін қызметтердің жүзеге асырылуын оңай ауыстыру.
  • Конфигурациялау: Бір жүзеге асыруды басқаға ауыстыру мүмкіндігі, клиенттік кодты өзгеріссіз.

ASP.NET Core-да қызметтерді тіркеу мысалы:

// Startup.cs немесе Program.cs - Minimal API-ларда
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 Сұрау уақытында бір мысал Бір
Transient Әр сұрауда жаңа мысал құрылады Көп (әр енгізу кезінде)