ASP.NET Core बिल्ट-इन IoC कंटेनर का उपयोग करके कंस्ट्रक्टर या विधि के माध्यम से निर्भरता वर्गों की वस्तुओं को इंजेक्ट करता है।
अंतर्निहित कंटेनर को IServiceProvider कार्यान्वयन द्वारा दर्शाया जाता है जो डिफ़ॉल्ट रूप से कंस्ट्रक्टर इंजेक्शन का समर्थन करता है। बिल्ट-इन IoCcontainer द्वारा प्रबंधित प्रकार (वर्ग) सेवाएँ कहलाती हैं।
IoC कंटेनर को स्वचालित रूप से हमारी एप्लिकेशन सेवाओं को इंजेक्ट करने देने के लिए, हमें पहले उन्हें IoC कंटेनर के साथ पंजीकृत करना होगा।
उदाहरण
public interface ILog{ void info(string str); } class MyConsoleLogger : ILog{ public void info(string str){ Console.WriteLine(str); } }
ASP.NET Core हमें स्टार्टअप वर्ग की ConfigureServices पद्धति में IoC कंटेनर के साथ अपनी एप्लिकेशन सेवाओं को पंजीकृत करने की अनुमति देता है। ConfigureServices विधि में IServiceCollection प्रकार का एक पैरामीटर शामिल होता है जिसका उपयोग एप्लिकेशन सेवाओं को पंजीकृत करने के लिए किया जाता है
नीचे दिखाए गए अनुसार ConfigureServices() विधि में IoC कंटेनर के साथ ILog पंजीकृत करें।
public class Startup{ public void ConfigureServices(IServiceCollection services){ services.AddSingleton<ILog, MyConsoleLogger>(); } }
IoCcontainer के साथ किसी सेवा को पंजीकृत करने के लिए IServiceCollection उदाहरण की जोड़ें () विधि का उपयोग किया जाता है
हमने ILog को सेवा प्रकार के रूप में और MyConsoleLogger को इसके उदाहरण के रूप में निर्दिष्ट किया है, यह ILog सेवा को सिंगलटन नाउ के रूप में पंजीकृत करेगा, एक IoC कंटेनर MyConsoleLogger वर्ग का एक सिंगलटन ऑब्जेक्ट बनाएगा और इसे कक्षाओं के निर्माता में इंजेक्ट करेगा जहाँ भी हम ILog को एक कंस्ट्रक्टर या विधि पैरामीटर के रूप में पूरे एप्लिकेशन में शामिल करते हैं। ।