मेरे एप्लिकेशन में कई बैक-एंड असेंबली (एक इकाई फ्रेमवर्क डेटा रिपोजिटरी परत समेत) शामिल हैं जो कई फ्रंट-एंड असेंबली (विंडोज सेवा सहित) एक एमवीसी 3 वेब अनुप्रयोग)।मल्टी-स्तरीय एप्लिकेशन में निनजेक मॉड्यूल का पता लगाने के लिए
निनजेक्ट बाध्यकारी प्रक्रिया की मेरी समझ यह है कि इंजेक्शन योग्य प्रकारों वाली प्रत्येक असेंबली में निनजेक्ट मॉड्यूल भी होना चाहिए जो इन प्रकारों के लिए डिफ़ॉल्ट बाइंडिंग को परिभाषित करता है। परिभाषित मॉड्यूल का सेट उपभोग करने वाले असेंबली के निनजेक कर्नेल में लोड किया जाएगा।
हालांकि, मैं समस्याओं में भाग रहा हूं, क्योंकि आवश्यक बाध्यकारी दायरा हमेशा सुसंगत नहीं होता है। उदाहरण के लिए, मेरी MVC परियोजना जबकि Windows सेवा एक ही कक्षा InThreadScope
को बांधता है, जिसे संदर्भ InRequestScope
करने के लिए बाध्य करने की जरूरत है।
मैं स्पष्ट रूप से सामने की परियोजनाओं में सभी मॉड्यूल को स्थानांतरित करके इस समस्या को हल कर सकता हूं और इस प्रकार प्रत्येक उपयोग परिदृश्य के लिए प्रत्येक मॉड्यूल की अलग प्रतियां बनाए रखता हूं, लेकिन यह हैकी लगता है, क्योंकि यह कई परियोजनाओं में मॉड्यूल सामग्री को डुप्लिकेट करता है ।
क्या मल्टी-स्तरीय एप्लिकेशन में मॉड्यूल स्थित होना चाहिए और परियोजनाओं के बीच अंतर को बाध्य करने की मेरी आवश्यकता के साथ मैं इसे कैसे सुलझ सकता हूं?
अपने सुझाव के लिएबहुत धन्यवाद,
टिम
यह भी देखें http://stackoverflow.com/questions/1699197/how-do-you-organise-your-ninject-modules (आईआईआरसी यह क्यू एक डुप्लिकेट है लेकिन यह अब मुझे सबसे अच्छा मिला है) –
धन्यवाद रूबेन। आप सही हैं कि इन दो सवालों के बीच बहुत कुछ आम है। मैं विशेष रूप से असेंबली के समर्थन में रहने वाले मॉड्यूल में रनटाइम पैरामीटर को पारित करने के आपके सुझाव को पसंद करता हूं - बहुत लचीला। –
हम्म; यह कुछ समय पहले (किसी भी तरह से मेरे जवाब को पंप करने की कोशिश नहीं कर रहा था)। मैं सचमुच मतलब * पासिंग पैरामीटर * दिन में वापस आ सकता था - आम तौर पर मैं जितना संभव हो इंटरफेस के माध्यम से ऐसा करने की कोशिश करता हूं। इसके अलावा, यह http://manning.com/seemann से पहले था, जो डीआई आर्किटेक्चर में नाटकीय रूप से परेशान पाए जाने वाले प्रश्नों की संख्या को कम करता है - डीफ रन इसे कोई प्रश्न नहीं पूछता है। –