See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 36245|Vastuse: 1

[.NET tuum] ASP.NET Core sõltuvussüstimine kasutab sellega kaasas olevat IOC konteinerisse

[Kopeeri link]
Postitatud 07.05.2019 13:55:10 | | | |
ASP.NET Core sõltuvussüstimine kasutab sellega kaasas olevat IOC konteinerisse
https://www.itsvse.com/thread-7562-1-1.html
(Allikas: Architect_Programmer)

ASP.NET Core kasutab Autofaci IOC süstimise rakendamiseks
https://www.itsvse.com/thread-7563-1-1.html
(Allikas: Architect_Programmer)

ASP.NET Core kasutab Autofaci AOP pealtkuulamise rakendamiseks
https://www.itsvse.com/thread-7566-1-1.html
(Allikas: Architect_Programmer)

Uues ASP.NET Core'is kasutatakse koodi kirjutamiseks suurt hulka sõltuvussüsteid.

Näiteks meie Startup-klassis näeme järgmist:

AddMvc AddDbContext sisaldab AddDirectoryBrowseri, mida kasutasime kataloogituuride jaoks varem:

Need on kõik raamistikud, mis pakuvad häid teenuseid, ja me saame neid otse kasutada, lisades neid.

Juhtimise pööramine (IoC) on objektorienteeritud programmeerimise disainipõhimõte, mida saab kasutada arvutikoodi sidumise vähendamiseks. Kõige levinum meetod on Dependency Injection (DI) ning on olemas ka meetod nimega "Dependency Lookup". Inversiooni juhtimise kaudu, kui objekt luuakse, edastab väline üksus, mis kontrollib kõiki süsteemi objekte, sellele viite objektile, millest ta sõltub. Samuti võib öelda, et sõltuvused süstitakse objekti.

IOC kasutamiseks peab Startup klass viitama Microsoft.Extensions.DependencyInjection(ps, mis on juba üsna lihtne: Microsoft.. Laienda... Sõltuvussüstimine - - ,)

Sisesta teenuse elutsükkel

Microsoft pakub ise süstitud teenustele 3 elutsüklit.

Mööduv

Hetkeline elutsükli teenus, mis luuakse iga kord, kui seda taotletakse. See elutsükkel sobib kõige paremini kergete, kodakondsuseta teenustele.

Scoped

Samas ulatuses luuakse teenus ainult üks kord iga päringu kohta.

Singleton (ainult)

Globaalne luuakse ainult korra, esimesel korral, kui seda taotletakse, ja siis kasutatakse seda alati.

Kuidas kasutada neid kolme elutsüklit? Süstimisel saame kasutada erinevaid meetodeid otse, kood on järgmine:


Testime nende kolme elutsükli konkreetset generatsiooni

Kirjutame kolm liidest erinevate nimedega ja 3 erineva klassiga, et liideste ellu viia, järgmiselt:

Iga rakendusklassi konstruktoris genereerime uue GUID-i, mis võimaldab meil kindlaks teha, kas klass on konstruktori uuesti käivitanud.

Süstida teenuseid kontrollerisse

Süstimiseks on üldiselt kolm viisi: konstruktorsüstimine, meetodi süstimine ja atribuudi süstimine. Microsofti enda IOC konteiner kasutab vaikimisi konstruktori süstimist (Atribuudi süstimist ei toetata, kuid seda saab saavutada kolmanda osapoole konteineri asendamisega)

Vaata lehe koodi:

Käivita projekt ja pääse sellele ligi kahe erineva brauseri kaudu, nagu allpool näidatud:



Leidsime, et hetkelise elutsükli jooksul kaks korda genereeritud GUID-id on ebajärjekindlad, mis viitab sellele, et objekt ei ole sama.

Kuid ulatuse elutsükkel on sama, sest sama ulatuse korral on sama brauseris kaks korda kasutatava teenuse GUID sama, mis näitab, et kasutatakse sama objekti.

Singletoni puhul pääsevad kaks erinevat brauserit alati ligi samale GUID-le, mis näitab, et kutsutakse sama objekti.

(Lõpp)






Eelmine:.NET Core Entity kasutab Entity Framework Core'i andmebaaside ühendamiseks
Järgmine:ASP.NET Core kasutab Autofaci IOC süstimise rakendamiseks
 Üürileandja| Postitatud 09.03.2022 11:00:35 |
Asenda teenused ASP.NET Core'i sisseehitatud DI konteinerites

Kood:





Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com