1 、 InstancePerDependency
Sukurkite naują unikalų kiekvienos priklausomybės ar iškvietimo egzempliorių. Tai taip pat yra numatytasis egzempliorių kūrimo būdas.
Oficialioje dokumentacijoje paaiškinama: Konfigūruokite komponentą taip, kad kiekvienas priklausomas komponentas arba iškvietimas į Resolve() gautų naują, unikalų egzempliorių (numatytasis.)
2 、 InstancePerLifetimeScope
Ciklo domene kiekviena priklausomybė arba iškvietimas sukuria vieną bendrai naudojamą egzempliorių, o kiekvienam skirtingam ciklo domenui egzempliorius yra unikalus ir nebendrinamas.
Oficialioje dokumentacijoje paaiškinama: Konfigūruokite komponentą taip, kad kiekvienas priklausomas komponentas arba Resolve() iškvietimas viename ILifetimeScope gautų tą patį bendrinamą egzempliorių. Priklausomi komponentai skirtingose gyvenimo trukmės srityse gaus skirtingus egzempliorius.
3 、 InstancePerMatchingLifetimeScope
Identifikuotame ciklo domene kiekviena priklausomybė arba iškvietimas sukuria vieną bendrinamą egzempliorių. Pirminio domeno egzemplioriai gali būti bendrinami identifikuoto ciklo domeno antrinės tapatybės domene. Jei visoje paveldėjimo hierarchijoje nerandamas joks identifikuotas ciklo domenas, pateikiama išimtis: DependencyResolutionException.
Oficialiuose dokumentuose paaiškinama: sukonfigūruokite komponentą taip, kad kiekvienas priklausomas komponentas arba iškvietimas į Resolve() ILifetimeScope, pažymėtą bet kuria iš pateiktų žymių reikšmės, gautų tą patį bendrinamą egzempliorių. Priklausomi komponentai visą gyvenimą trunkančiose aprėptyse, kurie yra pažymėtos aprėpties antriniai elementai, bendrins pirminio egzemplioriaus egzempliorių. Jei hierarchijoje nerandama tinkamai pažymėtos aprėpties, pateikiama DependencyResolutionException.
4、InstancePerOwned
Egzemplioriaus, kurį sukūrė egzempliorius, priklausantis ciklo domenui, gyvavimo ciklo metu kiekvienas priklausomas komponentas arba metodo Resolve() iškvietimas sukuria vieną bendrai naudojamą egzempliorių, o antrinis ciklo domenas bendrina egzempliorius pirminiame ciklo domene. Jei paveldėjimo hierarchijoje nerandamas tinkamas ciklo domenas su antriniais egzemplioriais, pateikiama išimtis: DependencyResolutionException.
Oficialiuose dokumentuose paaiškinama: Konfigūruokite komponentą taip, kad kiekvienas priklausomas komponentas arba iškvietimas į Resolve() priklausančiame egzemplioriuje, kurį sukūrė priklausantis egzempliorius, gautų tą patį bendrinamą egzempliorių. Priklausomi komponentai visą gyvenimą trunkančiose aprėptyse, kurie yra priklausančios egzemplioriaus aprėpties antriniai elementai, bendrins pirminio egzemplioriaus egzempliorių. Jei hierarchijoje nerandama tinkamos priklausančios egzemplioriaus aprėpties, pateikiama DependencyResolutionException.
5 、 Vienas egzempliorius
Kiekvieną kartą, kai priklausote nuo komponento arba iškviečiate Resolve() metodą, gaunate tą patį bendrinamą egzempliorių. Tiesą sakant, tai yra viengubas modelis.
Oficialioje dokumentacijoje paaiškinama: sukonfigūruokite komponentą taip, kad kiekvienas priklausomas komponentas arba iškvietimas į Resolve() gautų tą patį bendrinamą egzempliorių.
6 、 InstancePerHttpRequest
Pateikdami Http užklausą, bendrinkite komponento egzempliorių. Galima tik asp.net MVC kūrimui. Oficialiuose dokumentuose paaiškinama: bendrinkite vieną komponento egzempliorių vienos HTTP užklausos kontekste. Oficiali dokumentų nuoroda: http://autofaccn.readthedocs.io/en/latest/lifetime/instance-scope.html
|