Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 2964|Răspunde: 0

[Sursă] ASP.NET Dependențele de bază (douăzeci și cinci) injectează inițializarea Lazy lazy lazy

[Copiază linkul]
Postat pe 10.10.2023 21:14:31 | | | |
Cerințe: Adaugă servicii ASP.NET Core, injectează servicii prin constructori și dorești să întârzii inițializarea clasei de implementare (procesare logică diferită în funcție de informațiile de cerere de context HTTP) și gândește-te la folosirea Lazy<T> pentru lazy pentru inițializarea leneșă.

Recenzie:

Cum de leneș în C# păstrează firele în siguranță
https://www.itsvse.com/thread-10621-1-1.html

Optimizarea performanței C#: Lazy inițializează lazy cu <T>o întârziere
https://www.itsvse.com/thread-7700-1-1.html
Injectează direct în interfață

Constructorul este injectat direct în serviciul de interfață, iar codul este următorul:

Ordinea de execuție este următoarea:



Puteți vedea următoarea ordine de execuție: IA implementation class -> HomeController console -> index method

Inițializează cu întârziere leneșă

Dacă constructorul controlerului schimbă IA în Lazy<IA>, eroarea va arăta astfel:

InvalidOperationException: Unable to resolve service for type 'System.Lazy`1[WebApplication6.IA]' while attempting to activate 'WebApplication6.Controllers.HomeController'.
Eroarea se datorează faptului că nu ne-am înregistrat pentru serviciile legate de leneși, trebuie să înregistrăm un serviciu generic<> leneș, codul fiind următorul:

Adaugă serviciului:

Ordinea de execuție este următoarea:



Poți vedea ordinea execuției: HomeController consolă -> metoda Index -> clasa de implementare IA, o poți vedeaInițializarea întârzierii interfeței IAva instanția obiectul de implementare IA când este apelat.

(Sfârșit)





Precedent:CIDR: Citiți descrierea adresei CIDR într-un articol
Următor:Front-end-ul stochează pachetul localForage al IndexedDB
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com