Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 57373|Svar: 4

[Källa] ASP.NET Core (VI) DI hämtar manuellt metoden för att injicera objekt

[Kopiera länk]
Publicerad den 2021-3-19 15:13:15 | | |
Handledning om ASP.NET kärnberoendeinjektion, kontrollinversion (DI IOC):

ASP.NET Core dependency injection använder IOC-containern som följer med
https://www.itsvse.com/thread-7562-1-1.html


Recension:

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

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

ASP.NET Core (iii) Skapa instanser dynamiskt med hjälp av ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Core (2) Starta om applikationen via kod
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) använder Redis-cachelagring
https://www.itsvse.com/thread-9393-1-1.html
Beroendeinjektion i ett nötskal:

Beroendeinjektion (DI) är en teknik som implementerar lös koppling mellan ett objekt och dess samarbetspartners eller beroenden. Tillhandahåll dessa objekt som klassen använder för att utföra sina operationer på klassen på något sätt, istället för att direkt instansiera samarbetspartners eller använda statiska referenser.

ASP.NET Core DI använder generellt konstruktörinjektion för att erhålla objekt, till exempel efter att ha konfigurerat ConfigureServices-injektionen, kan den erhållas på följande sätt:


Vad händer om du manuellt hämtar injektionsobjektet?

Det första sättet att få det(Ibland kan man inte få det,Rekommenderas inte):


Det andra sättet att få detRekommenderad användning):

Observera: Det bör noteras att användning av ServiceLocator.Instance.GetService<T>(); ,Endast objekt som injiceras av AddTransient och AddSingleton kan hämtas, och kan inte erhålla det injicerade objektet i AddScoped (unikt i förfrågningslivscykeln), inte för att det inte kan erhållas, utan för att det förvärvade objektet inte erhålls av konstruktorn, det vill säga det förvärvade objektet delas inte, och användningsscenariot är sådant som IUnitOfWork.

Så hur hämtar man manuellt injektionsobjekten under förfråganens livscykel? Så här går det till:


eller

IHttpContextAccessor-gränssnittet finns under paketet Microsoft.AspNetCore.Http.AbstractionsNuget.




Föregående:HttpClient POST direkt för att skicka bytebyte (gzip) komprimeringsförfrågningar
Nästa:Skillnaden mellan Roslyn MSBuild-kompilatorn
Publicerad 2021-9-22 20:43:14 |
Lär dig att lära dig...
Publicerad den 2021-9-22 20:55:17 |
Lär dig att lära dig...
Publicerad den 2022-6-17 16:05:39 |
Lär dig använda den
 Hyresvärd| Publicerad den 2024-12-30 17:09:09 |
Konsolen injicerar gränssnittet för IHttpContextAccessor:



.NET/C#-konsoltjänster är registrerade hos Consul service discovery
https://www.itsvse.com/thread-10899-1-1.html
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com