Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 57373|Răspunde: 4

[Sursă] ASP.NET Core (VI) DI obține manual metoda de injectare a obiectelor

[Copiază linkul]
Postat pe 2021-3-19 15:13:15 | | |
Tutorial despre Injecția de Dependență ASP.NET Core, Inversiunea de Control (DI IOC):

ASP.NET Core dependency injection folosește containerul IOC care vine cu ea
https://www.itsvse.com/thread-7562-1-1.html


Recenzie:

ASP.NET Core (cinci) se bazează pe tranzacții distribuite CAP
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Filtrul Core(4) validare unificată a modelului ModelState
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Core (iii) Crearea dinamică a instanțelor folosind ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Nucleu (2) Repornește aplicația prin cod
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) folosește cache Redis
https://www.itsvse.com/thread-9393-1-1.html
Injectarea dependențelor pe scurt:

Injectarea dependențelor (DI) este o tehnică care implementează cuplarea lejeră între un obiect și colaboratorii sau dependențele sale. Furnizați aceste obiecte pe care clasa le folosește pentru a-și efectua operațiunile clasei într-un anumit mod, în loc să instanțieze direct colaboratorii sau să folosească referințe statice.

ASP.NET Core DI folosește în general injecția constructorului pentru a obține obiecte, de exemplu după configurarea injecției ConfigureServices, aceasta poate fi obținută în următoarele moduri:


Ce se întâmplă dacă iei manual obiectul de injectare?

Prima cale de a-l obține(Uneori nu poți să-l înțelegi,Nu este recomandat):


A doua cale de a-l obțineUtilizare recomandată):

Notă: Trebuie menționat că folosind ServiceLocator.Instance.GetService<T>(); ,Doar obiectele injectate de AddTransient și AddSingleton pot fi preluate, și nu pot obține obiectul injectat al AddScoped (unic în ciclul de viață al cererii), nu pentru că nu poate fi obținut, ci pentru că obiectul dobândit nu este obținut de constructor, adică obiectul dobândit nu este partajat, iar scenariul de utilizare este de genul IUnitOfWork.

Deci, cum obții manual obiectele de injectare pe parcursul ciclului de viață al cererii? Iată cum:


sau

Interfața IHttpContextAccessor se află sub pachetul Microsoft.AspNetCore.Http.AbstractionsNuget.




Precedent:HttpClient POST direct pentru a trimite cereri de compresie byte byte (gzip)
Următor:Diferența dintre compilatorul Roslyn MSBuild
Postat la 2021-9-2021 20:43:14 |
Învață să înveți...
Postat pe 2021-9-22 20:55:17 |
Învață să înveți...
Postat la 2022-6-17 16:05:39 |
Învață cum să-l folosești
 Proprietarul| Postat la 30-12-2024 17:09:09 |
Consola injectează interfața IHttpContextAccessor:



Serviciile de consolă .NET/C# sunt înregistrate la Consul service discovery
https://www.itsvse.com/thread-10899-1-1.html
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com