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) |