Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 36245|Odgovoriti: 1

[.NET Core] ASP.NET Core dependency injection uporablja IOC vsebnik, ki je priložen

[Kopiraj povezavo]
Objavljeno na 7. 05. 2019 13:55:10 | | | |
ASP.NET Core dependency injection uporablja IOC vsebnik, ki je priložen
https://www.itsvse.com/thread-7562-1-1.html
(Vir: Architect_Programmer)

ASP.NET Core uporablja Autofac za implementacijo vbrizgavanja IOC
https://www.itsvse.com/thread-7563-1-1.html
(Vir: Architect_Programmer)

ASP.NET Core uporablja Autofac za implementacijo prestrezanja AOP
https://www.itsvse.com/thread-7566-1-1.html
(Vir: Architect_Programmer)

V novem ASP.NET Core se za pisanje kode uporablja veliko število injekcij odvisnosti.

Na primer, v našem tečaju Startup lahko vidimo naslednje:

AddMvc AddDbContext vključuje AddDirectoryBrowser, ki smo ga uporabljali za oglede imenikov prej:

Vsi so okviri, ki zagotavljajo dobre storitve, in jih lahko neposredno uporabimo z vbrizgavanjem.

Inverzija nadzora (IoC) je načelo načrtovanja v objektno usmerjenem programiranju, ki se lahko uporablja za zmanjšanje povezave med računalniško kodo. Najpogostejša metoda se imenuje Dependency Injection (DI), obstaja pa tudi metoda z imenom "Dependency Lookup". Z nadzorom inverzije, ko je objekt ustvarjen, zunanja entiteta, ki nadzoruje vse objekte v sistemu, mu posreduje referenco na objekt, od katerega je odvisen. Lahko tudi rečemo, da so odvisnosti vbrizgane v objekt.

Za uporabo IOC mora razred Startup navajati Microsoft.Extensions.DependencyInjection (ps), kar je že precej enostavno: Microsoft... Razširi se... Injekcija odvisnosti - - ,)

Vbrizgajte življenjski cikel storitve

Microsoft zagotavlja 3 življenjske cikle za samovbrizgane storitve.

Prehodni

Storitev takojšnjega življenjskega cikla, ki se ustvari vsakič, ko je zahtevana. Ta življenjski cikel je najbolj primeren za lahke, brezdržavne storitve.

Scoped

V istem obsegu se storitev ustvari le enkrat na zahtevo.

Singleton (samo)

Globalni je ustvarjen le enkrat, prvič ob zahtevi, nato pa se vedno uporablja.

Kako uporabljate te tri življenjske cikle? Pri vbrizgavanju lahko neposredno uporabimo različne metode, koda je naslednja:


Preizkusimo specifično generacijo teh treh življenjskih ciklov

Za implementacijo vmesnikov napišemo tri vmesnike z različnimi imeni in tremi različnimi razredi, kot sledi:

V konstruktorju vsakega implementacijskega razreda ustvarimo nov GUID, ki nam omogoča ugotoviti, ali je razred ponovno izvedel konstruktor.

Vbrizgavanje storitev v krmilnik

Običajno obstajajo trije načini injiciranja: constructor injection, method injection in attribute injection. Microsoftov lastni IOC kontejner privzeto uporablja vbrizgavanje konstruktorjev (Vbrizgavanje atributov ni podprto, vendar jo je mogoče doseči z zamenjavo zabojnika s strani tretje osebe)

Poglej kodo strani:

Projekt zaženite in dostopajte do njega prek dveh različnih brskalnikov, kot je prikazano spodaj:



Ugotovili smo, da so GUID-ji, ustvarjeni dvakrat v trenutnem življenjskem ciklu, nedosledni, kar kaže, da objekt ni enak.

Vendar je življenjski cikel obsega enak, saj je v istem obsegu GUID storitve, uporabljene dvakrat v istem brskalniku, enak, kar pomeni, da se uporablja isti objekt.

V primeru singletona dva različna brskalnika vedno dostopata do istega GUID-a, kar pomeni, da se kliče isti objekt.

(Konec)






Prejšnji:.NET Core Entity uporablja Entity Framework Core za povezovanje baz podatkov
Naslednji:ASP.NET Core uporablja Autofac za implementacijo vbrizgavanja IOC
 Najemodajalec| Objavljeno na 9. 03. 2022 11:00:35 |
Zamenjajte storitve v vgrajenih DI kontejnerjih ASP.NET Core

Koda:





Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com