Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 57373|Risposta: 4

[Fonte] ASP.NET Core (VI) DI ottiene manualmente il metodo di iniezione degli oggetti

[Copiato link]
Pubblicato il 19-03-2021 alle 15:13:15 | | |
Tutorial su ASP.NET Iniezione di Dipendenze Core, Inversione di Controllo (DI IOC):

ASP.NET Core dependency injection utilizza il container IOC che lo accompagna
https://www.itsvse.com/thread-7562-1-1.html


Recensione:

ASP.NET Core (cinque) si basa sulle transazioni distribuite CAP
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Filtro Core(4) validazione unificata del modello ModelState
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Core (iii) Creare dinamicamente istanze usando ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Core (2) Riavvia l'applicazione tramite codice
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) utilizza la cache Redis
https://www.itsvse.com/thread-9393-1-1.html
Iniezione di dipendenza in poche parole:

L'iniezione di dipendenza (DI) è una tecnica che implementa un accoppiamento debole tra un oggetto e i suoi collaboratori o dipendenze. Fornire questi oggetti che la classe usa per eseguire le sue operazioni alla classe in qualche modo, invece di istanziare direttamente i collaboratori o usare riferimenti statici.

ASP.NET Core DI generalmente utilizza l'iniezione del costruttore per ottenere oggetti, ad esempio dopo aver configurato l'iniezione ConfigureServices, può essere ottenuto nei seguenti modi:


E se ottieni manualmente l'oggetto di iniezione?

Il primo modo per ottenerlo(A volte non ci riesci,Non consigliato):


Il secondo modo per ottenerloUso consigliato):

Nota: Va notato che usando ServiceLocator.Instance.GetService<T>(); ,Solo gli oggetti iniettati da AddTransient e AddSingleton possono essere recuperati, e non può ottenere l'oggetto iniettato da AddScoped (unico nel ciclo di vita della richiesta), non perché non possa essere ottenuto, ma perché l'oggetto acquisito non è ottenuto dal costruttore, cioè l'oggetto acquisito non è condiviso, e lo scenario d'uso è tale come IUnitOfWork.

Quindi, come si ottengono manualmente gli oggetti di iniezione durante il ciclo di vita della richiesta? Ecco come:


o

L'interfaccia IHttpContextAccessor si trova nel pacchetto Microsoft.AspNetCore.Http.AbstractionsNuget.




Precedente:HttpClient POST direttamente per inviare richieste di compressione byte byte (gzip)
Prossimo:La differenza tra il compilatore Roslyn MSBuild
Pubblicato il 2021-9-22 20:43:14 |
Impara a imparare...
Pubblicato il 2021-9-20:55:17 |
Impara a imparare...
Pubblicato il 17-06-2022 alle 16:05:39 |
Impara a usarlo
 Padrone di casa| Pubblicato il 30-12-2024 17:09:09 |
La console inietta l'interfaccia IHttpContextAccessor:



I servizi console .NET/C# sono registrati presso Consul service discovery
https://www.itsvse.com/thread-10899-1-1.html
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com