Õpetus ASP.NET Core Dependency Injection, Control Inversion (DI IOC) kohta:
Läbivaatamine:
Sõltuvuse süstimine lühidalt:
Sõltuvuse süstimine (DI) on tehnika, mis rakendab lahtist sidumist objekti ja selle kaastöötajate või sõltuvuste vahel. Anna need objektid, mida klass kasutab oma toimingute tegemiseks, klassile mingil moel, mitte otseselt koostööpartnereid käivitada või staatilisi viiteid kasutada.
ASP.NET Core DI kasutab tavaliselt konstruktori süstimist objektide saamiseks, näiteks pärast ConfigureServices'i süstimise seadistamist, saab seda saada järgmistel viisidel:
Mis siis, kui saad süstimisobjekti käsitsi kätte?
Esimene viis selle saamiseks(Mõnikord ei saa seda kätte,Ei soovita):
Teine viis selle saamiseks(Soovitatav kasutus):
Märkus: Tuleb märkida, et kasutades ServiceLocator.Instance.GetService<T>(); ,Ainult AddTransient'i ja AddSingletoni poolt süstitud objekte saab tuua, ja ei saa AddScopedi süstitud objekti (mis on päringu elutsüklis ainulaadne), mitte sellepärast, et seda ei saa saada, vaid kuna omandatud objekti ei saa konstruktor, st omandatud objekti ei jagata ja kasutusstsenaarium on nagu IUnitOfWork.
Kuidas siis käsitsi saada süstimisobjekte päringu elutsükli jooksul? Siin on, kuidas:
või
IHttpContextAccessor liides asub Microsoft.AspNetCore.Http.AbstractionsNuget paketi all.
|