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
|