Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 36245|Vastaus: 1

[.NET Core] ASP.NET Ytimen riippuvuuden injektio käyttää mukana tulevaa IOC-säiliötä

[Kopioi linkki]
Julkaistu 7.5.2019 13.55.10 | | | |
ASP.NET Ytimen riippuvuuden injektio käyttää mukana tulevaa IOC-säiliötä
https://www.itsvse.com/thread-7562-1-1.html
(Lähde: Architect_Programmer)

ASP.NET Core käyttää Autofacia IOC-injektion toteuttamiseen
https://www.itsvse.com/thread-7563-1-1.html
(Lähde: Architect_Programmer)

ASP.NET Core käyttää Autofacia toteuttaakseen AOP:n sieppauksen
https://www.itsvse.com/thread-7566-1-1.html
(Lähde: Architect_Programmer)

Uudessa ASP.NET Coressa koodin kirjoittamiseen käytetään suuri määrä riippuvuusinjektioita.

Esimerkiksi Startup-luokassamme näemme seuraavaa:

AddMvc AddDbContext sisältää AddDirectoryBrowserin, jota käytimme aiemmin hakemistokierroksilla:

Ne ovat kaikki kehyksiä, jotka tarjoavat hyviä palveluita, ja voimme käyttää niitä suoraan lisäämällä niitä.

Ohjauksen inversiointi (IoC) on olio-ohjelmoinnin suunnitteluperiaate, jota voidaan käyttää vähentämään tietokonekoodin kytkentää. Yleisin menetelmä on nimeltään Dependency Injection (DI), ja on olemassa myös menetelmä nimeltä "Dependency Lookup". Kääntämisen ohjaamisella, kun objekti luodaan, ulkoinen olento, joka ohjaa kaikkia järjestelmän olioita, välittää sille viittauksen siihen objektiin, johon se on riippuvainen. Voidaan myös sanoa, että riippuvuuksia injektoidaan objektiin.

IOC:n käyttämiseksi Startup-luokan täytyy viitata Microsoft.Extensions.DependencyInjection(ps), joka on jo melko suoraviivaista: Microsoft.. Laajenna... Riippuvuuden injektio - - ,)

Injektoi palvelun elinkaari

Microsoft tarjoaa itse injektoiduille palveluille kolme elinkaaria.

Ohimenevä

Välitön elinkaaren palvelu, joka luodaan aina, kun sitä pyydetään. Tämä elinkaari sopii parhaiten kevyisiin, kansalaisuudettomiin palveluihin.

Scoped

Samassa laajuudessa palvelu luodaan vain kerran per pyyntö.

Singleton (vain)

Globaali luodaan vain kerran, ensimmäisellä pyynnöllä, ja sitten sitä käytetään aina.

Miten käytät näitä kolmea elinkaarta? Voimme käyttää eri menetelmiä suoraan injektoinnissa, koodi on seuraava:


Testataan näiden kolmen elinkaaren tarkkaa sukupolvea

Kirjoitamme kolme rajapintaa eri nimillä ja kolmella eri luokalla rajapintojen toteuttamiseksi seuraavasti:

Jokaisen toteutusluokan konstruktorissa generoimme uuden GUID:n, jonka avulla voimme määrittää, onko luokka suorittanut konstruktorin uudelleen.

Injektoi palvelut ohjaimeen

Injektiota on yleensä kolme tapaa: konstruktoriinjektio, menetelmäinjektio ja attribuutti-injektio. Microsoftin oma IOC-kontti käyttää oletuksena konstruktorien injektiota (Attribuuttien injektiointia ei tueta, mutta se onnistuu kolmannen osapuolen säiliön korvaamisella)

Katso sivun koodi:

Suorita projekti ja käytä sitä kahden eri selaimen kautta, kuten alla on esitetty:



Havaitsimme, että kahdesti välittömän elinkaaren aikana tuotetut GUID:t ovat ristiriitaisia, mikä viittaa siihen, että kohde ei ole sama.

Scope-elinkaari on kuitenkin sama, koska saman laajuuden alla palvelun käyttöliittymä, jota käytetään kahdesti samassa selaimessa, on sama, mikä osoittaa, että samaa objektia käytetään.

Singletonin tapauksessa kaksi eri selainta käyttää aina samaa käyttöliittymää, mikä osoittaa, että samaa objektia kutsutaan.

(Loppu)






Edellinen:.NET Core Entity käyttää Entity Framework Corea tietokantojen yhdistämiseen
Seuraava:ASP.NET Core käyttää Autofacia IOC-injektion toteuttamiseen
 Vuokraisäntä| Julkaistu 9.3.2022 11.00.35 |
Korvaa palvelut ASP.NET Coren sisäänrakennetuissa DI-kontteissa

Koodi:





Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com