Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 57373|Antwoord: 4

[Bron] ASP.NET Core (VI) DI verkrijgt handmatig de methode om objecten te injecteren

[Link kopiëren]
Geplaatst op 19-3-2021 15:13:15 | | |
Tutorial over ASP.NET Core Dependency Injection, Control Inversion (DI IOC):

ASP.NET Core dependency injection gebruikt de IOC-container die erbij hoort
https://www.itsvse.com/thread-7562-1-1.html


Recensie:

ASP.NET Core (vijf) is gebaseerd op CAP-gedistribueerde transacties
https://www.itsvse.com/thread-9593-1-1.html

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

ASP.NET Core (iii) Maakt dynamisch instanties aan met behulp van ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Core (2) Herstart de applicatie via code
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) gebruikt Redis-caching
https://www.itsvse.com/thread-9393-1-1.html
Afhankelijkheidsinjectie in een notendop:

Dependency injection (DI) is een techniek die losse koppeling implementeert tussen een object en zijn samenwerkers of afhankelijkheden. Bied deze objecten aan die de klasse gebruikt om zijn bewerkingen uit te voeren op de klasse op een bepaalde manier, in plaats van direct collaborateurs te instantiëren of statische referenties te gebruiken.

ASP.NET Core DI gebruikt over het algemeen constructorinjectie om objecten te verkrijgen, bijvoorbeeld na het configureren van de ConfigureServices-injectie kan deze op de volgende manieren worden verkregen:


Wat als je handmatig het injectieobject opneemt?

De eerste manier om het te krijgen(Soms kun je het niet krijgen,Niet aanbevolen):


De tweede manier om het te krijgenAanbevolen gebruik):

Opmerking: Het moet worden opgemerkt dat het gebruik van ServiceLocator.Instance.GetService<T>(); ,Alleen objecten die door AddTransient en AddSingleton zijn geïnjecteerd, kunnen worden opgehaald, en kan het geïnjecteerde object van AddScoped (uniek in de aanvraaglevenscyclus) niet verkrijgen, niet omdat het niet verkregen kan worden, maar omdat het verworven object niet door de constructor wordt verkregen, dat wil zeggen, het verworven object wordt niet gedeeld, en het gebruiksscenario is als IUnitOfWork.

Hoe krijg je de injectieobjecten handmatig tijdens de aanvraaglevenscyclus? Zo werkt het:


of

De interface IHttpContextAccessor bevindt zich onder het pakket Microsoft.AspNetCore.Http.AbstractionsNuget.




Vorig:HttpClient POST direct om bytebyte (gzip) compressieverzoeken te verzenden
Volgend:Het verschil tussen de Roslyn MSBuild-compiler
Geplaatst op 22-9-2021 20:43:14 |
Leer leren...
Geplaatst op 22-9-2021 20:55:17 |
Leer leren...
Geplaatst op 2022-6-17 16:05:39 |
Leer hoe je het gebruikt
 Huisbaas| Geplaatst op 30-12-2024 17:09:09 |
De console injecteert de IHttpContextAccessor-interface:



.NET/C# consoleservices zijn geregistreerd bij Consul service discovery
https://www.itsvse.com/thread-10899-1-1.html
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com