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

Vista: 2964|Risposta: 0

[Fonte] ASP.NET Dipendenze Core (venticinque) iniettano inizializzazione Lazy Lazy Lazy

[Copiato link]
Pubblicato su 10/10/2023 21:14:31 | | | |
Requisiti: Aggiungi servizi ASP.NET Core, inietta servizi tramite costruttori e vuoi ritardare l'inizializzazione della classe di implementazione (elaborazione logica diversa a seconda delle informazioni di richiesta contestuale HTTP), e pensa a usare Lazy<T> per lazy per inizializzazione lenta.

Recensione:

Come la pigrizia in C# mantiene i thread al sicuro
https://www.itsvse.com/thread-10621-1-1.html

Ottimizzazione delle prestazioni C#: Lazy inizializza lazy con <T>un ritardo
https://www.itsvse.com/thread-7700-1-1.html
Inietta direttamente nell'interfaccia

Il costruttore viene iniettato direttamente nel servizio di interfaccia, e il codice è il seguente:

L'ordine di esecuzione è il seguente:



Puoi vedere il seguente ordine di esecuzione: IA implementation class -> HomeController console -> index method

Inizializzare con ritardo pigro

Se il costruttore controller cambia IA in Lazy<IA>, l'errore apparirà così:

InvalidOperationException: Unable to resolve service for type 'System.Lazy`1[WebApplication6.IA]' while attempting to activate 'WebApplication6.Controllers.HomeController'.
L'errore è dovuto al fatto che non ci siamo registrati per i servizi relativi alla pigrizia, dobbiamo registrare un servizio generico<> pigro, il codice è il seguente:

Aggiungi al servizio:

L'ordine di esecuzione è il seguente:



Puoi vedere l'ordine di esecuzione: HomeController console -> metodo Index -> IA implementation class, puoi vederloInizializzazione del ritardo dell'interfaccia IAistanzierà l'oggetto di implementazione IA quando chiamato.

(Fine)





Precedente:CIDR: Leggi la descrizione dell'indirizzo CIDR in un articolo
Prossimo:Il front-end memorizza il pacchetto localForage di IndexedDB
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