Apmācība par ASP.NET pamata atkarības injekciju, vadības inversiju (DI IOC):
Pārskats:
Atkarības injekcija īsumā:
Atkarības injekcija (DI) ir paņēmiens, kas īsteno brīvu savienojumu starp objektu un tā līdzstrādniekiem vai atkarībām. Nodrošiniet šos objektus, kurus klase izmanto, lai kaut kādā veidā veiktu savas darbības ar klasi, nevis tieši instancētu sadarbības partnerus vai izmantotu statiskas atsauces.
ASP.NET Core DI parasti izmanto konstruktora injekciju, lai iegūtu objektus, piemēram, pēc ConfigureServices injekcijas konfigurēšanas, to var iegūt šādos veidos:
Ko darīt, ja jūs manuāli saņemat injekcijas objektu?
Pirmais veids, kā to iegūt(Dažreiz jūs to nevarat iegūt,Nav ieteicams):
Otrais veids, kā to iegūt(Ieteicamā lietošana):
Piezīme: Jāatzīmē, ka, izmantojot ServiceLocator.Instance.GetService<T>(); ,Var iegūt tikai objektus, ko injicē AddTransient un AddSingletonun nevar iegūt ievadīto AddScoped objektu (unikālu pieprasījuma dzīves ciklā), nevis tāpēc, ka to nevar iegūt, bet tāpēc, ka iegūto objektu neiegūst konstruktors, tas ir, iegūtais objekts netiek koplietots, un lietošanas scenārijs ir tāds kā IUnitOfWork.
Tātad, kā manuāli iegūt injekcijas objektus pieprasījuma dzīves cikla laikā? Tālāk ir aprakstīts, kā to paveikt.
vai
IHttpContextAccessor interfeiss atrodas pakotnē Microsoft.AspNetCore.Http.AbstractionsNuget.
|