Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 57373|Svare: 4

[Kilde] ASP.NET Core (VI) DI henter manuelt metoden for å injisere objekter

[Kopier lenke]
Publisert 19.03.2021 kl. 15:13:15 | | |
Veiledning om ASP.NET Core Dependency Injection, Control Inversion (DI IOC):

ASP.NET Core-avhengighetsinjeksjon bruker IOC-beholderen som følger med
https://www.itsvse.com/thread-7562-1-1.html


Anmeldelse:

ASP.NET Core (fem) er basert på CAP-distribuerte transaksjoner
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Core(4)-filteret enhetlig ModelState-modellvalidering
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Core (iii) Opprett instanser dynamisk ved hjelp av ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Core (2) Start applikasjonen på nytt via kode
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) bruker Redis-caching
https://www.itsvse.com/thread-9393-1-1.html
Avhengighetsinjeksjon i et nøtteskall:

Avhengighetsinjeksjon (DI) er en teknikk som implementerer løs kobling mellom et objekt og dets samarbeidspartnere eller avhengigheter. Gi disse objektene som klassen bruker for å utføre sine operasjoner til klassen på en eller annen måte, i stedet for å instansiere samarbeidspartnere direkte eller bruke statiske referanser.

ASP.NET Core DI bruker vanligvis konstruktørinjeksjon for å hente objekter, for eksempel etter konfigurasjon av ConfigureServices-injeksjonen, kan den oppnås på følgende måter:


Hva om du manuelt henter injeksjonsobjektet?

Den første måten å få det på(Noen ganger får du det ikke til,Anbefales ikke):


Den andre måten å få det påAnbefalt bruk):

Merk: Det bør bemerkes at bruk av ServiceLocator.Instance.GetService<T>(); ,Kun objekter injisert av AddTransient og AddSingleton kan hentes, og kan ikke hente det injiserte objektet i AddScoped (unikt i forespørselslivssyklusen), ikke fordi det ikke kan oppnås, men fordi det ervervede objektet ikke oppnås av konstruktøren, det vil si at det ervervede objektet ikke deles, og bruksscenariet er som IUnitOfWork.

Så hvordan får du manuelt injeksjonsobjektene i løpet av forespørselslivssyklusen? Slik gjør du:


eller

IHttpContextAccessor-grensesnittet ligger under Microsoft.AspNetCore.Http.AbstractionsNuget-pakken.




Foregående:HttpClient POST direkte for å sende byte byte (gzip) komprimeringsforespørsler
Neste:Forskjellen mellom Roslyn MSBuild-kompilatoren
Publisert 22.09.2021 kl. 20:43:14 |
Lær å lære...
Publisert 22.09.2021 kl. 20:55:17 |
Lær å lære...
Publisert 17.06.2022 16:05:39 |
Lær hvordan du bruker det
 Vert| Publisert 30.12.2024 17:09:09 |
Konsollen injiserer IHttpContextAccessor-grensesnittet:



.NET/C#-konsolltjenester er registrert hos Consul service discovery
https://www.itsvse.com/thread-10899-1-1.html
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com