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

Rodinys: 36245|Atsakyti: 1

[.NET branduolys] ASP.NET Core priklausomybės injekcija naudoja kartu su juo pateiktą IOC konteinerį

[Kopijuoti nuorodą]
Paskelbta 2019-05-07 13:55:10 | | | |
ASP.NET Core priklausomybės injekcija naudoja kartu su juo pateiktą IOC konteinerį
https://www.itsvse.com/thread-7562-1-1.html
(Šaltinis: Architect_Programmer)

"ASP.NET Core" naudoja "Autofac" IOC injekcijai įgyvendinti
https://www.itsvse.com/thread-7563-1-1.html
(Šaltinis: Architect_Programmer)

ASP.NET Core naudoja Autofac AOP perėmimui įgyvendinti
https://www.itsvse.com/thread-7566-1-1.html
(Šaltinis: Architect_Programmer)

Naujajame "ASP.NET Core" kodui rašyti naudojama daugybė priklausomybės injekcijų.

Pavyzdžiui, mūsų paleisties klasėje galime pamatyti:

"AddMvc AddDbContext" apima "AddDirectoryBrowser", kurį anksčiau naudojome katalogų ekskursijoms:

Visos jos yra sistemos, teikiančios geras paslaugas, ir mes galime jas naudoti tiesiogiai, jas įleisdami.

Valdymo inversija (IoC) yra objektinio programavimo projektavimo principas, kuris gali būti naudojamas kompiuterio kodo susiejimui sumažinti. Labiausiai paplitęs metodas vadinamas priklausomybės injekcija (DI), taip pat yra metodas, vadinamas "Priklausomybės paieška". Kontroliuojant inversiją, kai sukuriamas objektas, išorinis subjektas, valdantis visus sistemos objektus, perduoda jam nuorodą į objektą, nuo kurio jis priklauso. Taip pat galima sakyti, kad priklausomybės įšvirkščiamos į objektą.

Norint naudoti ioc, paleisties klasė turi nurodyti Microsoft.Extensions.DependencyInjection(ps, o tai jau gana paprasta: Microsoft.. Išplėsti... Priklausomybės injekcija - - ,)

Paslaugos gyvavimo ciklo įvedimas

"Microsoft" teikia 3 savarankiškų paslaugų gyvavimo ciklus.

Trumpalaikis

Momentinė gyvavimo ciklo paslauga, kuri sukuriama kiekvieną kartą, kai jos prašoma. Šis gyvavimo ciklas geriausiai tinka lengvoms paslaugoms be būsenos.

Taikymo sritis

Toje pačioje aprėptyje paslauga sukuriama tik vieną kartą per užklausą.

Singletonas (tik)

Visuotinis sukuriamas tik vieną kartą, pirmą kartą jo prašoma, o tada jis visada naudojamas.

Kaip naudojate šiuos tris gyvenimo ciklus? Tiesiogiai švirkščiant galime naudoti skirtingus metodus, kodas yra toks:


Išbandykime konkrečią šių trijų gyvenimo ciklų kartą

Mes rašome tris sąsajas su skirtingais pavadinimais ir 3 skirtingomis klasėmis, kad įgyvendintume sąsajas, taip:

Kiekvienos diegimo klasės konstruktoriuje sugeneruojame naują GUID, kuris leidžia nustatyti, ar klasė iš naujo įvykdė konstruktorių.

Įveskite paslaugas į valdiklį

Paprastai yra trys injekcijos būdai: konstruktoriaus injekcija, metodo injekcija ir atributų injekcija. "Microsoft" IOC konteineris pagal numatytuosius nustatymus naudoja konstruktoriaus injekciją (Atributų injekcija nepalaikoma, tačiau tai galima pasiekti pakeitus trečiosios šalies konteinerį)

Peržiūrėti puslapio kodą:

Paleiskite projektą ir pasiekite jį per 2 skirtingas naršykles, kaip parodyta toliau:



Mes nustatėme, kad du kartus per momentinį gyvavimo ciklą sugeneruoti GUID yra nenuoseklūs, o tai rodo, kad objektas nėra tas pats.

Tačiau aprėpties ciklas yra tas pats, nes toje pačioje aprėptyje tarnybos, naudojamos du kartus toje pačioje naršyklėje, GUID yra tas pats, nurodantis, kad naudojamas tas pats objektas.

Singletono atveju dvi skirtingos naršyklės visada pasiekia tą patį GUID, nurodydami, kad iškviečiamas tas pats objektas.

(Pabaiga)






Ankstesnis:.NET pagrindinis objektas naudoja objekto sistemos branduolį duomenų bazėms susieti
Kitą:"ASP.NET Core" naudoja "Autofac" IOC injekcijai įgyvendinti
 Savininkas| Paskelbta 2022-03-09 11:00:35 |
Pakeiskite paslaugas "ASP.NET Core" integruotuose DI konteineriuose

Kodas:





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