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

C# ASP.NET Core में AddSingleton, AddScoped, AddTransient में क्या अंतर है?


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
इंस्टेंस प्रत्येक रिक्वेस्ट/प्रत्येक यूजर के लिए समान। प्रति रिक्वेस्ट एक। हर बार अलग।
डिस्पोज़ ऐप शटडाउन पर रिक्वेस्ट के अंत पर रिक्वेस्ट के अंत पर
उपयोग जब सिंगलटन कार्यान्वयन आवश्यक हो। एप्लिकेशन जिनका व्यवहार प्रति यूजर अलग हो। हल्की और स्टेटलेस सर्विसेज।
  1. C# ASP.NET MVC में ChildActionOnly एट्रिब्यूट का उपयोग क्या है? C# ASP.NET MVC में ChildActionOnly एट्रिब्यूट का उपयोग क्या है?

    Child Action केवल चाइल्ड रिक्वेस्ट द्वारा एक्सेसिबल होता है। यह URL रिक्वेस्ट्स का जवाब नहीं देगा। यदि कोई प्रयास किया जाता है, तो रनटाइम एरर फेंका जाएगा - Child action is accessible only by a child request। चाइल्ड एक्शन मेथड्स को व्यू से Action() और RenderAction() HTML हेल्पर्स का उपयोग करके चाइल्ड

  1. C# ASP.NET MVC में NonActionAttribute का महत्व क्या है? C# ASP.NET MVC में NonActionAttribute का महत्व क्या है?

    NonAction एट्रिब्यूट का उपयोग तब किया जाता है जब हम एक कंट्रोलर में एक पब्लिक मेथड चाहते हैं लेकिन उसे एक्शन मेथड के रूप में ट्रीट नहीं करना चाहते। एक एक्शन मेथड एक कंट्रोलर में एक पब्लिक मेथड है जिसे URL का उपयोग करके इनवोक किया जा सकता है। इसलिए, डिफ़ॉल्ट रूप से, यदि कंट्रोलर में कोई पब्लिक मेथड ह

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

    फिल्टर्स का उपयोग WebAPI फ्रेमवर्क रिक्वेस्ट प्रोसेसिंग के विभिन्न स्तरों पर अतिरिक्त लॉजिक इंजेक्ट करने के लिए किया जाता है। फिल्टर्स क्रॉस-कटिंग कंसर्न (लॉगिंग, ऑथराइज़ेशन, और कैशिंग) के लिए एक तरीका प्रदान करते हैं। फिल्टर्स को एक्शन मेथड या कंट्रोलर पर घोषणात्मक या प्रोग्रामेटिक तरीके से लागू कि