Sobes.tech
Middle

Milleks kasutatakse teenuste konfiguratsioonimeetodeid C#-s?

sobes.tech AI

Vastus AI-lt

Sõltuvuste registreerimine sõltuvuste sissejuhatuskonteineris. See võimaldab rakenduse infrastruktuuril hallata teenuste näidete loomist ja neid sinna sisestada, kus neid vaja on.

Peamised eesmärgid:

  • Elutsükli haldamine: Teenuse näite olemasoluaja määramine (Singleton, Scoped, Transient).
  • Võõrandatud arhitektuur: Komponentide vahelise sideme vähendamine abstraktsioonide (liideste) kasutamisega.
  • Testitavus: Teenuste implementatsioonide lihtne asendamine moodulitestide jaoks.
  • Konfiguratsioon: Võimalus asendada üks implementatsioon teise ilma kliendikoodi muutmata.

Näide teenuste registreerimisest ASP.NET Core'is:

// Startup.cs või Program.cs - Minimal APIs
public void ConfigureServices(IServiceCollection services)
{
    // Registreeri teenus Singleton elutsükliga
    services.AddSingleton<ISingletonService, SingletonService>();

    // Registreeri teenus Scoped elutsükliga
    services.AddScoped<IScopedService, ScopedService>();

    // Registreeri teenus Transient elutsükliga
    services.AddTransient<ITransientService, TransientService>();

    // Registreeri MVC ja teised standardteenused
    services.AddControllersWithViews();
}

Teenuste elutsüklid:

Elutsükkel Kirjeldus Näidete arv ühe taotluse (HTTP) jooksul
Singleton Üks näide kogu rakenduse eluea jooksul Üks
Scoped Üks näide taotluse (HTTP) jooksul Üks
Transient Uus näide iga taotluse puhul Mitmeid (iga sisestuse ajal)