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

Skats: 20690|Atbildi: 1

[Avots] Autofac izveides instances metodoloģijas kopsavilkums

[Kopēt saiti]
Publicēts 05.01.2018 21:25:48 | | |

1 、 InstancePerDependency

Izveidojiet jaunu unikālu instanci katrai atkarībai vai izsaukumam. Tas ir arī noklusējuma veids, kā izveidot instances.

Oficiālajā dokumentācijā paskaidrots: Konfigurējiet komponentu tā, lai katrs atkarīgais komponents vai izsaukums uz Resolve() iegūtu jaunu, unikālu instanci (noklusējums).



2 、 InstancePerLifetimeScope

Dzīves cikla domēnā katra atkarība vai izsaukums izveido vienu koplietojamu instanci, un katram atšķirīgam dzīves cikla domēnam instance ir unikāla un nav koplietota.

Oficiālajā dokumentācijā paskaidrots: Konfigurējiet komponentu tā, lai katrs atkarīgais komponents vai izsaukums uz Resolve() vienā ILifetimeScope iegūtu to pašu, koplietojamu instanci. Atkarīgie komponenti dažādos kalpošanas laika tvērumos iegūs dažādus gadījumus.



3 、 InstancePerMatchingLifetimeScope

Identificētā dzīves cikla domēnā katra atkarība vai izsaukums izveido vienu koplietojamu instanci. Vecākdomēna instances var koplietot identificētā dzīves cikla domēna bērna identitātes domēnā. Ja visā mantojuma hierarhijā nav atrasts neviens identificēts dzīves cikla domēns, tiek izmests izņēmums: DependencyResolutionException.

Oficiālajā dokumentācijā paskaidrots: Konfigurējiet komponentu tā, lai katrs atkarīgais komponents vai izsaukums uz Resolve() ILifetimeScope, kas atzīmēts ar kādu no norādītajām tagu vērtībām, iegūtu to pašu koplietojamo instanci. Atkarīgie komponenti mūža tvērumos, kas ir atzīmētā tvēruma bērni, koplietos vecāka instanci. Ja hierarhijā nav atrodams atbilstošs tvērums, tiek izmests DependencyResolutionException.



4 、 InstancePerOwned

Dzīves cikla domēnam piederošas instances izveidotās instances dzīves ciklā katrs atkarīgais komponents vai metodes Resolve() izsaukums izveido vienu koplietojamu instanci, un bērna dzīves cikla domēns koplieto instances vecākdzīves cikla domēnā. Ja pārmantošanas hierarhijā nav atrasts piemērots dzīves cikla domēns ar pakārtotām instancēm, tiek izmests izņēmums: DependencyResolutionException.

Oficiālajā dokumentācijā paskaidrots: Konfigurējiet komponentu tā, lai katrs atkarīgais komponents vai izsaukums uz Resolve() ILifetimeScope, ko izveidojusi piederoša instance, iegūtu to pašu koplietojamo instanci. Atkarīgie komponenti mūža tvērumos, kas ir īpašumā esošās instances tvēruma bērni, koplietos vecāka instanci. Ja hierarhijā nav atrodams atbilstošs piederošais instances tvērums, tiek izmests DependencyResolutionException.



5 、 Viena instance

Katru reizi, kad esat atkarīgs no komponenta vai izsaucat Resolve() metodi, jūs saņemat to pašu koplietojamo instanci. Patiesībā tas ir vientuļš modelis.

Oficiālajā dokumentācijā paskaidrots: Konfigurējiet komponentu tā, lai katrs atkarīgais komponents vai Resolve() izsaukums saņemtu vienu un to pašu koplietojamo instanci.



6 、 InstancePerHttpRequest



Saistībā ar Http pieprasījumu koplietojiet komponenta instanci. Pieejams tikai asp.net MVC izstrādei.
Oficiālajā dokumentācijā ir paskaidrots: Koplietojiet vienu komponenta instanci viena HTTP pieprasījuma kontekstā.
Oficiālās dokumentācijas saite: http://autofaccn.readthedocs.io/en/latest/lifetime/instance-scope.html




Iepriekšējo:asp.net Iegūt vietnes direktorija failu ir tukšs
Nākamo:GeckoFx Firefox kodola nomaiņa, atspējot sistēmas uznirstošo brīdinājumu
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