मैं आम तौर पर आईओसी के लिए नया हूं और मैं समझने के लिए थोड़ा संघर्ष कर रहा हूं कि मैं जो करने की कोशिश कर रहा हूं वह कोई समझ में आता है। मेरे पास एक वेब फॉर्म एप्लिकेशन है जिसमें मैं अपने लिए कुछ बाइंडिंग को परिभाषित करने के लिए एक मॉड्यूल बनाना चाहता हूं। बाइंडिंग का इस्तेमाल मेरे व्यवसाय प्रबंधक वर्गों में भंडारों को इंजेक्ट करने के लिए किया जाएगा, जिससे मुझे इकाई प्रबंधकों का परीक्षण करने की अनुमति मिल जाएगी। इसके अलावा मैं कंटेनर को एंटीटी फ्रेमवर्क संदर्भ को अपने भंडारों में इंजेक्ट करने के लिए उपयोग करना चाहता हूं, इस तरह वे सभी प्रति http अनुरोध के समान संदर्भ साझा करते हैं।एक वेब अनुप्रयोग में निनजेक IKernel स्टोर करने के लिए कहां?
मैं समझता हूँ कि मैं एक ही गिरी उदाहरण मेरी ऑब्जेक्ट निर्माण और अपने जीवन का प्रबंधन करने की जरूरत है: तो यहाँ मैं क्या सोच रहा हूं। उदाहरण के लिए यदि मैं एक-प्रति-httprequest प्रकार परिदृश्य चाहता हूं तो मुझे उस अवधि के लिए कर्नेल के उदाहरण की आवश्यकता होगी। अगर मुझे सिंगलटन की ज़रूरत है तो क्या होगा? फिर इसे किसी भी तरह से आवेदन किया जाना चाहिए। तो मैं IKernel उदाहरण कहां से स्टोर करूं? ऐसा लगता है कि मैं इसे अपने ग्लोबल.एक्सएक्स में स्थिर बनाना चाहता हूं, क्या यह सही दृष्टिकोण है और धागा सुरक्षा चिंता का विषय है?
चूंकि मैं बाइंडिंग को परिभाषित करने के लिए बाइंड <> का उपयोग कर रहा हूं, मैं वेब/UI परत में उस परिभाषा को बनाने के बारे में कैसे जा सकता हूं जब मुझे यूआई से डेटा एक्सेस लेयर का संदर्भ नहीं देना चाहिए? मेरे संदर्भ जैसे दिखते हैं। वेब -> व्यवसाय -> डेटा एक्सेस। ऐसा लगता है जैसे मैं कर्नेल को बताना चाहता हूं "हे मेरे डेटा एक्सेस उदाहरणों का प्रबंधन करता है, लेकिन संकलन समय पर उनका संदर्भ नहीं है।" एक इस जैसे बाध्यकारी:
//Any object requesting an instance of AdventureWorksEntities will get an instance per request
Bind<AdventureWorksEntities>().ToSelf().InRequestScope();
मुझे लगता है कि मैं इस गलत तरीके से आ जा सकता है, धन्यवाद।
http://stackoverflow.com/questions/367178/usage-of-ioc-containers-specifically-windsor –