Návod na ASP.NET injekciu závislostí jadra, inverzii riadenia (DI IOC):
Revízia:
Závislostná injekcia v skratke:
Dependency injection (DI) je technika, ktorá implementuje voľné prepojenie medzi objektom a jeho spolupracovníkmi alebo závislosťami. Poskytnúť tieto objekty, ktoré trieda používa na vykonávanie svojich operácií s triedou nejakým spôsobom, namiesto priameho inštancionovania spolupracovníkov alebo používania statických referencií.
ASP.NET Core DI zvyčajne používa injekciu konštruktorov na získanie objektov, napríklad po konfigurácii injekcie ConfigureServices ju možno získať nasledujúcimi spôsobmi:
Čo ak manuálne získaš injekčný objekt?
Prvý spôsob, ako ho získať(Niekedy to nemôžete pochopiť,Neodporúča sa):
Druhý spôsob, ako ho získať(Odporúčané použitie):
Poznámka: Treba poznamenať, že pomocou ServiceLocator.Instance.GetService<T>(); ,Načítať je možné len objekty injektované pomocou AddTransient a AddSingleton, a nemôže získať injektovaný objekt AddScoped (jedinečný v životnom cykle požiadaviek), nie preto, že by nemohol byť získaný, ale preto, že získaný objekt nie je získaný konštruktorom, t. j. nie je zdieľaný a scenár použitia je ako IUnitOfWork.
Ako teda manuálne získate objekty injekcie počas životného cyklu požiadaviek? Tu je ako:
alebo
Rozhranie IHttpContextAccessor je v balíku Microsoft.AspNetCore.Http.AbstractionsNuget.
|