Startup.cs में निर्भरताओं को रजिस्टर करने के तीन तरीके हैं: AddSingleton, AddScoped, और AddTransient।
Add Singleton
जब हम किसी प्रकार को सिंगलटन के रूप में रजिस्टर करते हैं, तो पूरे एप्लिकेशन और हर रिक्वेस्ट के लिए केवल एक इंस्टेंस उपलब्ध होता है।
यह एक स्टैटिक ऑब्जेक्ट होने के समान है।
इंस्टेंस पहली रिक्वेस्ट के लिए बनाया जाता है और वही पूरे एप्लिकेशन और प्रत्येक बाद की रिक्वेस्ट के लिए उपलब्ध होता है।
public void ConfigureServices(IServiceCollection services){ services.AddSingleton<ILog,Logger>() }
Add Scoped
जब हम किसी प्रकार को स्कोप्ड के रूप में रजिस्टर करते हैं, तो प्रति रिक्वेस्ट पूरे एप्लिकेशन के लिए एक इंस्टेंस उपलब्ध होता है। जब एक नई रिक्वेस्ट आती है, तो एक नया इंस्टेंस बनाया जाता है। Add scoped निर्दिष्ट करता है कि प्रति रिक्वेस्ट एक सिंगल ऑब्जेक्ट उपलब्ध है।
public void ConfigureServices(IServiceCollection services){ services.AddScoped<ILog,Logger>() }
Add Transient
जब हम किसी प्रकार को ट्रांजिएंट के रूप में रजिस्टर करते हैं, तो हर बार एक नया इंस्टेंस बनाया जाता है। Transient हर सर्विस/कंट्रोलर के साथ-साथ हर रिक्वेस्ट और हर यूजर के लिए नया इंस्टेंस बनाता है।
public void ConfigureServices(IServiceCollection services){ services.AddTransient<ILog,Logger>() }
| पैरामीटर | Add Singleton | Add Scoped | Add Transient |
|---|---|---|---|
| इंस्टेंस | प्रत्येक रिक्वेस्ट/प्रत्येक यूजर के लिए समान। | प्रति रिक्वेस्ट एक। | हर बार अलग। |
| डिस्पोज़ | ऐप शटडाउन पर | रिक्वेस्ट के अंत पर | रिक्वेस्ट के अंत पर |
| उपयोग | जब सिंगलटन कार्यान्वयन आवश्यक हो। | एप्लिकेशन जिनका व्यवहार प्रति यूजर अलग हो। | हल्की और स्टेटलेस सर्विसेज। |