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