यह मेरी समझ है कि नियंत्रक के लिए कन्स्ट्रक्टर प्रत्येक वेब अनुरोध के दौरान नहीं कहा जाता है। यह मानना सच है, नियंत्रक का जीवन चक्र क्या है? ऐप शुरू होने पर "निर्मित" है, फिर प्रत्येक वेब अनुरोध के साथ अनुरोध किए गए requestcontext के साथ कैश किया गया है और उसे बुलाया गया है?एएसपी.नेट एमवीसी कंट्रोलर लाइफसाइकिल
बस स्पष्ट होने के लिए, मैं कन्स्ट्रक्टर व्यवहार को अनुकरण करने के लिए नहीं कह रहा हूं, मैं उन चीजों को शुरू करने के लिए OnActionExecuting ईवेंट का उपयोग करता हूं जो मैं आमतौर पर एक कन्स्ट्रक्टर में करता हूं। इसके अलावा, मैं यूनिट और सिस्टम परीक्षण के लिए नियंत्रकों पर कन्स्ट्रक्टर का उपयोग करता हूं।
धन्यवाद!
क्यों, हालांकि? क्यूं कर? –
मैं खराब हो गया और खुद को सिखाया कि यह क्यों है और यह मामला होना चाहिए। मैं ईएफ का उपयोग कर पढ़ने/लिखने के कार्यों और विचारों के साथ नियंत्रक बना रहा था। जेनरेट कोड ने ईएफ संदर्भ उदाहरण के लिए एक निजी आवृत्ति चर बनाया। मैंने सोचा कि मैं स्मार्ट होगा और इसे एक स्थिर चर बना दूंगा। समस्या यह है कि अगर इस नियंत्रक के दायरे से बाहर कुछ डेटाबेस को संशोधित करता है, तो स्थिर संदर्भ कभी नहीं जानता है। अब मैं इसे एक आवृत्ति चर के रूप में छोड़ देता हूं और चूंकि प्रत्येक अनुरोध के साथ एक नया उदाहरण बनाया गया है, संदर्भ डेटाबेस में कोई भी परिवर्तन देख सकता है। – ThatAintWorking
एक वेब एपीआई में जहां सभी राज्य पैरामीटर के भीतर निहित है (यानी एक कार्यात्मक शैली) कोई कारण नहीं है (जिसे मैं देख सकता हूं) क्यों नियंत्रक का पुन: उपयोग नहीं किया जा सकता है। यह डिजाइन द्वारा थ्रेड-सुरक्षित है। –