Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C#

हम नियंत्रक सी # एएसपीनेट कोर में सेवा निर्भरता को कैसे इंजेक्ट कर सकते हैं?

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 को एक कंस्ट्रक्टर या विधि पैरामीटर के रूप में पूरे एप्लिकेशन में शामिल करते हैं। ।


  1. C# ASP.NET WebAPI में Querystring पैरामीटर के साथ वर्जनिंग कैसे करें?

    DefaultHttpControllerSelector वेब एपीआई में वर्ग उपयुक्त नियंत्रक क्रिया पद्धति का चयन करने के लिए जिम्मेदार है जिसे हम यूआरआई में भेजते हैं। मान लें कि हमें नीचे की तरह क्वेरी स्ट्रिंग में वर्जनिंग को लागू करना है v=1 StudentsV1Controller (Version 1) v=2 StudentsV2Controller (Version 2) अगर हम क्

  1. हम C# ASP.NET WebAPI में क्रिया विधि के लिए उपनाम नाम कैसे निर्दिष्ट कर सकते हैं?

    नियंत्रक में सार्वजनिक विधि को क्रिया विधि कहा जाता है। आइए एक उदाहरण पर विचार करें जहां डेमोकंट्रोलर वर्ग एपीकंट्रोलर से लिया गया है और इसमें कई क्रिया विधियां शामिल हैं जिनके नाम HTTP क्रियाओं जैसे गेट, पोस्ट, पुटैंड डिलीट से मेल खाते हैं। उदाहरण public class DemoController : ApiController{  

  1. C# ASP.NET WebAPI में कंट्रोलर एक्शन के विभिन्न रिटर्न प्रकार क्या हैं?

    वेब एपीआई क्रिया विधि में निम्नलिखित रिटर्न प्रकार हो सकते हैं। शून्य आदिम प्रकार/जटिल प्रकार HttpResponseMessage IHttpActionResult शून्य - यह आवश्यक नहीं है कि सभी क्रिया विधियों को कुछ वापस करना होगा। इसमें शून्य वापसी प्रकार हो सकता है। उदाहरण using DemoWebApplication.Models using