Singleton

.AddSingleton()

Krijon një shembull të vetëm të një klase herën e parë që kërkohet dhe e përdor atë gjatë gjithë gjatësisë së aplikacionit.

Çdo kërkesë, çdo klasë, çdo shërbim përdor të njëjtin shembull.

Është e rëndësishme të theksohet se, padyshim, nëse regjistroni një shërbim të caktuar si "singleton", ai shërbim nuk mund të varet nga varësi të tjera me jetëgjatësi të shtrirë ose kalimtare, sepse nuk do t'i instantonte ato dhe, në një farë mënyre, do t'i konvertonte varësitë me shtrirje dhe kalimtare. në beqarë.

Me shtrirje

.AddScoped()

Me këtë shtrirje, shërbimet krijohen një herë për çdo kërkesë klienti, duke mbetur të njëjta gjatë jetës së kërkesës kudo që kërkohet kjo varësi.

Kjo fushë është shumë e dobishme nëse duam të përdorim të njëjtin shembull të një shërbimi gjatë përpunimit të një kërkese specifike.

Mund të përdoret nga shërbime me një lidhje bazë të dhënash, ose që ruajnë një informacion specifik përdoruesi, për shembull.

Kalimtare

.AddTransient()

Nga ana tjetër, me këtë shtrirje, aplikacioni krijon një shembull të ri sa herë që kërkohet varësia, kudo që kërkohet kjo varësi.

Siç thuhet në Dokumentet e Microsoft, "ky fushë funksionon më së miri për shërbime të lehta dhe pa shtetësi" (shërbime që nuk duhet të ruajnë informacione për kërkesën aktuale ose jetëgjatësinë e aplikacionit).

"Microsoft Docs - Injeksion i varësisë"