Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 57373|Svar: 4

[Kilde] ASP.NET Core (VI) DI henter manuelt metoden til at injicere objekter

[Kopier link]
Opslået den 19-3-2021 kl. 15:13:15 | | |
Vejledning om ASP.NET Core Dependency Injection, Control Inversion (DI IOC):

ASP.NET Core-afhængighedsinjektion bruger IOC-containeren, der følger med
https://www.itsvse.com/thread-7562-1-1.html


Anmeldelse:

ASP.NET Core (fem) er baseret på CAP-distribuerede transaktioner
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Core(4)-filter, samlet ModelState-modelvalidering
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Core (iii) Opret dynamisk instanser ved hjælp af ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Core (2) Genstart applikationen ved at kode
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) bruger Redis-caching
https://www.itsvse.com/thread-9393-1-1.html
Afhængighedsinjektion i en nøddeskal:

Afhængighedsinjektion (DI) er en teknik, der implementerer løs kobling mellem et objekt og dets samarbejdspartnere eller afhængigheder. Giv disse objekter, som klassen bruger til at udføre sine operationer over for klassen på en eller anden måde, i stedet for direkte at instansiere samarbejdspartnere eller bruge statiske referencer.

ASP.NET Core DI bruger generelt konstruktørinjektion til at opnå objekter, for eksempel efter konfiguration af ConfigureServices-injektionen, kan den opnås på følgende måder:


Hvad hvis du manuelt henter injektionsobjektet?

Den første måde at få det på(Nogle gange kan du ikke få det,Ikke anbefalet):


Den anden måde at få det påAnbefalet brug):

Bemærk: Det skal bemærkes, at brugen af ServiceLocator.Instance.GetService<T>(); ,Kun objekter injiceret af AddTransient og AddSingleton kan hentes, og kan ikke opnå det injicerede objekt i AddScoped (unikt i anmodningslivscyklussen), ikke fordi det ikke kan opnås, men fordi det erhvervede objekt ikke opnås af konstruktøren, det vil sige, det erhvervede objekt deles ikke, og brugsscenariet er som i IUnitOfWork.

Så hvordan får man manuelt injektionsobjekterne under anmodningslivscyklussen? Sådan gør du:


eller

IHttpContextAccessor-grænsefladen findes under Microsoft.AspNetCore.Http.AbstractionsNuget-pakken.




Tidligere:HttpClient POST direkte for at sende byte byte (gzip) komprimeringsanmodninger
Næste:Forskellen mellem Roslyn MSBuild-compileren
Opslået den 22-9-2021 kl. 20:43:14 |
Lær at lære...
Opslået den 22-9-2021 kl. 20:55:17 |
Lær at lære...
Opslået den 2022-6-17 kl. 16:05:39 |
Lær at bruge det
 Udlejer| Opslået den 30-12-2024 kl. 17:09:09 |
Konsollen indsætter IHttpContextAccessor-grænsefladen:



.NET/C#-konsoltjenester er registreret hos Consul service discovery
https://www.itsvse.com/thread-10899-1-1.html
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com