Sobes.tech
Middle

Kam naudojami paslaugų konfigūracijos metodai C#?

sobes.tech AI

Atsakymas iš AI

Priklausomybių registravimas priklausomybės injekcijos konteineryje. Tai leidžia programos infrastruktūrai valdyti paslaugų pavyzdžių kūrimą ir jų įvedimą ten, kur jų reikia.

Pagrindiniai tikslai:

  • Gyvenimo ciklo valdymas: Paslaugos pavyzdžio egzistavimo laiko nustatymas (Singleton, Scoped, Transient).
  • Atskira architektūra: Mažinti komponentų tarpusavio ryšį naudojant abstrakcijas (sąsajas).
  • Testuojamumas: Lengvai pakeisti paslaugų įgyvendinimus modulinio testavimo tikslais.
  • Konfigūravimas: Galimybė pakeisti vieną įgyvendinimą kitu be kliento kodo keitimo.

Pavyzdys, kaip registruoti paslaugas ASP.NET Core:

// Startup.cs arba Program.cs - Minimal API
public void ConfigureServices(IServiceCollection services)
{
    // Registruoti paslaugą su Singleton gyvenimo ciklu
    services.AddSingleton<ISingletonService, SingletonService>();

    // Registruoti paslaugą su Scoped gyvenimo ciklu
    services.AddScoped<IScopedService, ScopedService>();

    // Registruoti paslaugą su Transient gyvenimo ciklu
    services.AddTransient<ITransientService, TransientService>();

    // Registruoti MVC ir kitus standartinius servisus
    services.AddControllersWithViews();
}

Paslaugų gyvenimo ciklai:

Gyvenimo ciklas Aprašymas Pavyzdžių skaičius viename užklausoje (HTTP)
Singleton Vienas pavyzdys viso programos gyvavimo metu Vienas
Scoped Vienas pavyzdys užklausos (HTTP) metu Vienas
Transient Kiekvieno užklausos metu sukuriamas naujas pavyzdys Daug (kiekvieno įdiegimo metu)