Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 36245|Atbildi: 1

[.NET kodols] ASP.NET Core atkarības injekcija izmanto IOC konteineru, kas tam pievienots

[Kopēt saiti]
Publicēts 07.05.2019 13:55:10 | | | |
ASP.NET Core atkarības injekcija izmanto IOC konteineru, kas tam pievienots
https://www.itsvse.com/thread-7562-1-1.html
(Avots: Architect_Programmer)

ASP.NET Core izmanto Autofac, lai ieviestu SOK injekciju
https://www.itsvse.com/thread-7563-1-1.html
(Avots: Architect_Programmer)

ASP.NET Core izmanto Autofac, lai ieviestu AOP pārtveršanu
https://www.itsvse.com/thread-7566-1-1.html
(Avots: Architect_Programmer)

Jaunajā ASP.NET Core koda rakstīšanai tiek izmantots liels skaits atkarības injekciju.

Piemēram, mūsu startēšanas klasē mēs varam redzēt:

AddMvc AddDbContext ietver AddDirectoryBrowser, ko mēs izmantojām direktoriju ekskursijām iepriekš:

Tie visi ir ietvari, kas sniedz labus pakalpojumus, un mēs varam tos izmantot tieši, injicējot tos.

Vadības inversija (IoC) ir objektorientētās programmēšanas dizaina princips, ko var izmantot, lai samazinātu saikni starp datora kodu. Visizplatītākā metode tiek saukta par atkarības injekciju (DI), un ir arī metode ar nosaukumu "Atkarības meklēšana". Kontrolējot inversiju, kad tiek izveidots objekts, ārēja vienība, kas kontrolē visus sistēmas objektus, nodod tai atsauci uz objektu, no kura tā ir atkarīga. Var arī teikt, ka objektā tiek ievadītas atkarības.

Lai izmantotu ioc, startēšanas klasei ir jāatsaucas uz Microsoft.Extensions.DependencyInjection(ps, kas jau ir diezgan vienkārši: Microsoft.. Izvērst... Atkarības injekcija - - ,)

Pakalpojuma dzīves cikla ievadīšana

Microsoft nodrošina 3 dzīves ciklus pašinjicētiem pakalpojumiem.

Pārejošs

Tūlītējs dzīves cikla pakalpojums, kas tiek izveidots katru reizi, kad tas tiek pieprasīts. Šis dzīves cikls ir vislabāk piemērots viegliem, bezvalstniekiem pakalpojumiem.

Darbības joma

Tajā pašā tvērumā pakalpojums tiek izveidots tikai vienu reizi vienā pieprasījumā.

Singleton (tikai)

Globālais tiek izveidots tikai vienu reizi, pirmo reizi, kad tas tiek pieprasīts, un pēc tam tas vienmēr tiek izmantots.

Kā jūs izmantojat šos trīs dzīves ciklus? Mēs varam izmantot dažādas metodes tieši injicējot, kods ir šāds:


Pārbaudīsim šo trīs dzīves ciklu īpašo paaudzi

Mēs rakstām trīs saskarnes ar dažādiem nosaukumiem un 3 dažādām klasēm, lai ieviestu saskarnes, šādi:

Katras ieviešanas klases konstruktorā mēs ģenerējam jaunu GUID, kas ļauj noteikt, vai klase ir atkārtoti izpildījusi konstruktoru.

Ievadiet pakalpojumus kontrolierī

Parasti ir trīs injekcijas veidi: konstruktora injekcija, metodes injekcija un atribūtu injekcija. Microsoft paša IOC konteiners pēc noklusējuma izmanto konstruktora injekciju (Atribūta injekcija netiek atbalstīta, bet to var panākt ar trešās puses konteinera nomaiņu)

Skatīt lapas kodu:

Palaidiet projektu un piekļūstiet tam, izmantojot 2 dažādas pārlūkprogrammas, kā parādīts zemāk:



Mēs atklājām, ka momentānā dzīves ciklā divreiz ģenerētie GUID ir nekonsekventi, norādot, ka objekts nav vienāds.

Tomēr tvēruma dzīves cikls ir tāds pats, jo vienā un tajā pašā tvērumā divreiz vienā pārlūkprogrammā izmantotā pakalpojuma GUID ir vienāds, norādot, ka tiek izmantots viens un tas pats objekts.

Vientuļa gadījumā divas dažādas pārlūkprogrammas vienmēr piekļūst vienam un tam pašam GUID, norādot, ka tiek izsaukts viens un tas pats objekts.

(Beigas)






Iepriekšējo:.NET Core Entity izmanto Entity Framework Core, lai saistītu datu bāzes
Nākamo:ASP.NET Core izmanto Autofac, lai ieviestu SOK injekciju
 Saimnieks| Publicēts 09.03.2022 11:00:35 |
Pakalpojumu nomaiņa ASP.NET Core iebūvētajos DI konteineros

Kods:





Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com