Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 36245|Válasz: 1

[.NET mag] ASP.NET A magfüggőségi injekció a hozzá tartozó IOC konténert használja

[Linket másol]
Közzétéve 2019. 05. 07. 13:55:10 | | | |
ASP.NET A magfüggőségi injekció a hozzá tartozó IOC konténert használja
https://www.itsvse.com/thread-7562-1-1.html
(Forrás: Architect_Programmer)

ASP.NET Core Autofac-ot használ az IOC injekció megvalósításához
https://www.itsvse.com/thread-7563-1-1.html
(Forrás: Architect_Programmer)

ASP.NET Core Autofac-ot használ az AOP elfogás megvalósításához
https://www.itsvse.com/thread-7566-1-1.html
(Forrás: Architect_Programmer)

Az új ASP.NET Core-ban számos függőségi injekciót használnak kód írására.

Például a Startup osztályunkban a következőket láthatjuk:

Az AddMvc AddDbContext tartalmazza azt az AddDirectoryBrowser-t, amit korábban könyvtárkörútokhoz használtunk:

Mind olyan keretrendszerek, amelyek jó szolgáltatásokat nyújtanak, és közvetlenül is használhatjuk őket befecskendezéssel.

Az irányítás inverziója (IoC) egy tervezési elv az objektumorientált programozásban, amely használható a számítógépes kód közötti kapcsolódás csökkentésére. A leggyakoribb módszer a függőségi injekció (DI), és létezik egy "Dependency Lookup" módszer is. Az inverzió vezérlésével, amikor egy objektumot létrehoznak, egy külső entitás, amely minden objektumot irányít a rendszerben, átadja neki a hivatkozást arra az objektumra, amelyhez támaszkodik. Mondhatjuk azt is, hogy függőségek injektálódnak az objektumba.

Az IOC használatához a Startup osztálynak hivatkoznia kell a Microsoft.Extensions.DependencyInjection(ps) nevű fájlra, ami már így is elég egyértelmű: Microsoft... Bővítsd... Függőségi injekció - - ,)

A szolgáltatás életciklusának beépítése

A Microsoft 3 életciklust biztosít az öninjektált szolgáltatásokhoz.

Átmeneti

Egy azonnali életciklusú szolgáltatás, amely minden kéréskor létrejön. Ez az életciklus leginkább könnyű, állampolgárságtól független szolgáltatásokra alkalmas.

Távcső

Ugyanebben a körben a szolgáltatást csak egyszer hozza létre kérésenként.

Singleton (csak)

A globális rendszer csak egyszer jön létre, az első kéréskor, és akkor mindig használják.

Hogyan használod ezt a három életciklust? Különböző módszereket is használhatunk közvetlenül injektáláshoz, a kód a következő:


Teszteljük e három életciklus konkrét generációját

Három különböző nevű interfészt és 3 különböző osztályt írunk az interfészek megvalósításához, a következők szerint:

Minden implementációs osztály konstruktorában új GUID-et generálunk, amely lehetővé teszi, hogy meghatározzuk, újraindította-e az osztály a konstruktort.

Szolgáltatások befecskendezése a vezérlőbe

Általában három módja van az injekciónak: konstruktor injekció, módszer injekció és attribútuminjekció. A Microsoft saját IOC konténerje alapértelmezés szerint konstruktor injekciót használ (Az attribútum-injekció nem támogatott, de ez megvalósítható egy harmadik féltől származó konténercserével is)

Oldalkód megtekintése:

Indítsd el a projektet, és használd hozzá két különböző böngészőn keresztül, ahogy az alábbiakban látható:



Megállapítottuk, hogy a pillanatnyi életciklusban kétszer generált GUID-ek következetlenek, ami arra utal, hogy az objektum nem ugyanaz.

Azonban a scope életciklusa ugyanaz, mert ugyanezen a hatókörben a szolgáltatás kétszer használt GUID-je ugyanaz, ami azt jelzi, hogy ugyanazt az objektumot használják.

Singleton esetén két különböző böngésző mindig ugyanazt a GUID-et éri el, ami azt jelzi, hogy ugyanazt az objektumot hívják.

(Vége)






Előző:A .NET Core Entity az Entity Framework Core-t használja az adatbázisok összekapcsolására
Következő:ASP.NET Core Autofac-ot használ az IOC injekció megvalósításához
 Háziúr| Közzétéve 2022. 03. 09. 11:00:35 |
A szolgáltatások cseréje a ASP.NET Core beépített DI konténereiben

Kód:





Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com