Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 57373|Atsakyti: 4

[Šaltinis] ASP.NET Core (VI) DI rankiniu būdu gauna objektų įpurškimo būdą

[Kopijuoti nuorodą]
Publikuota: 2021-3-19 15:13:15 | | |
Pamoka apie ASP.NET pagrindinės priklausomybės inversiją, valdymo inversiją (DI IOC):

ASP.NET Core priklausomybės injekcija naudoja kartu su juo pateiktą IOC konteinerį
https://www.itsvse.com/thread-7562-1-1.html


Peržiūra:

"ASP.NET Core" (penki) yra pagrįstas BŽŪP paskirstytais sandoriais
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Core(4) filtro vieningas ModelState modelio tikrinimas
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Core (iii) Dinamiškai kurkite egzempliorius naudodami "ActivatorUtilities"
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Core (2) Iš naujo paleiskite programą pagal kodą
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) naudoja Redis talpyklą
https://www.itsvse.com/thread-9393-1-1.html
Priklausomybės injekcija trumpai:

Priklausomybės injekcija (DI) yra technika, įgyvendinanti laisvą objekto ir jo bendradarbių ar priklausomybių susiejimą. Pateikite šiuos objektus, kuriuos klasė naudoja savo operacijoms atlikti klasei, o ne tiesiogiai instanciuoti bendradarbius ar naudoti statines nuorodas.

ASP.NET "Core DI" objektams gauti paprastai naudoja konstruktoriaus injekciją, pvz., sukonfigūravus "ConfigureServices" injekciją, ją galima gauti šiais būdais:


Ką daryti, jei injekcijos objektą gausite rankiniu būdu?

Pirmasis būdas jį gauti(Kartais jūs negalite gauti,Nerekomenduojama):


Antrasis būdas jį gautiRekomenduojamas naudojimas):

Pastaba: Reikėtų pažymėti, kad naudojant ServiceLocator.Instance.GetService<T>(); ,Galima gauti tik "AddTransient" ir "AddSingleton" įterptus objektusir negali gauti įterpto "AddScoped" objekto (unikalaus užklausos gyvavimo cikle) ne todėl, kad jo negalima gauti, o todėl, kad įsigyto objekto negauna konstruktorius, tai yra, įsigytas objektas nėra bendrinamas, o naudojimo scenarijus yra toks kaip IUnitOfWork.

Taigi, kaip rankiniu būdu gauti injekcijos objektus užklausos gyvavimo ciklo metu? Štai kaip:


arba

IHttpContextAccessor sąsaja yra pakete Microsoft.AspNetCore.Http.AbstractionsNuget.




Ankstesnis:HttpClient POST tiesiogiai siųsti baitų baitų (gzip) glaudinimo užklausas
Kitą:Skirtumas tarp Roslyn MSBuild kompiliatoriaus
Publikuota: 2021-9-22 20:43:14 |
Išmokite mokytis...
Publikuota: 2021-9-22 20:55:17 |
Išmokite mokytis...
Publikuota: 2022-6-17 16:05:39 |
Sužinokite, kaip juo naudotis
 Savininkas| Publikuota: 2024-12-30 17:09:09 |
Konsolė įterpia IHttpContextAccessor sąsają:



.NET/C# konsolės paslaugos registruojamos "Consul service discovery"
https://www.itsvse.com/thread-10899-1-1.html
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com