Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 2964|Atbildi: 0

[Avots] ASP.NET Core (divdesmit piecas) atkarības injicē Lazy lazy lazy inicializāciju

[Kopēt saiti]
Publicēts 10.10.2023 21:14:31 | | | |
Prasības: Pievienojiet pakalpojumus ASP.NET Core, injicējiet pakalpojumus caur konstruktoriem un vēlaties aizkavēt ieviešanas klases inicializāciju (atšķirīga loģiskā apstrāde saskaņā ar HTTP konteksta pieprasījuma informāciju) un padomājiet par Lazy izmantošanu<T> slinkam slinkai inicializācijai.

Pārskats:

Kā Lazy in C# saglabā pavedienus drošībā
https://www.itsvse.com/thread-10621-1-1.html

C# veiktspējas optimizācija: Lazy inicializē slinku ar <T>aizkavēšanos
https://www.itsvse.com/thread-7700-1-1.html
Injicējiet tieši saskarnē

Konstruktors tiek ievadīts tieši saskarnes pakalpojumā, un kods ir šāds:

Izpildes secība ir šāda:



Varat redzēt šādu izpildes secību: IA ieviešanas klase -> HomeController konsole -> indeksa metode

Inicializēt ar slinko aizkavi

Ja kontroliera konstruktors maina IA uz Lazy<IA>, kļūda izskatīsies šādi:

InvalidOperationException: Unable to resolve service for type 'System.Lazy`1[WebApplication6.IA]' while attempting to activate 'WebApplication6.Controllers.HomeController'.
Kļūda ir saistīta ar to, ka mēs neesam reģistrējušies ar Lazy saistītiem pakalpojumiem, mums ir jāreģistrē Lazy<> vispārējs pakalpojums, kods ir šāds:

Pievienot pakalpojumam:

Izpildes secība ir šāda:



Jūs varat redzēt izpildes secību: HomeController konsole -> Indeksa metode > IA ieviešanas klase, jūs to varat redzētIA interfeisa aizkaves inicializācijaizsauc IA ieviešanas objektu.

(Beigas)





Iepriekšējo:CIDR: izlasiet CIDR adreses aprakstu vienā rakstā
Nākamo:Priekšgalā tiek glabāta IndexedDB localForage pakotne
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com