/ / N-tier ASP .net MVC एप्लिकेशन में एकता को कैसे कॉन्फ़िगर करें - asp.net-mvc, ioc- कंटेनर

एन-स्तरीय एएसपी .net एमवीसी अनुप्रयोग में एकता को कॉन्फ़िगर कैसे करें - asp.net-mvc, ioc-container

मुझे थोड़ा समस्या हो रही है कि मैं अपने n-tier ASP .net MVC एप्लिकेशन में एकता IoC कंटेनर को कैसे कॉन्फ़िगर करूं।

मेरे हल में 3 परियोजनाएँ हैं: 1। MVC (दृश्य के रूप में प्रयुक्त): केवल व्यापार तर्क परत के लिए संदर्भित है 2. व्यापार तर्क परत: केवल रिपोजिटरी परियोजना का संदर्भ है 3. रिसपोजिटरी: उपरोक्त परियोजनाओं में से किसी का संदर्भ नहीं है

कृपया मेरे संदर्भ कार्य के तरीके पर ध्यान दें, मैंने इसे इस तरह किया है ताकि मैं कम कठिनाइयों के साथ WCF का उपयोग करके अपने स्तरों के बीच संचार को बदल पाऊंगा।

मैंने अपने MVC एप्लिकेशन में एक यूनिटी कंटेनर कॉन्फ़िगर किया है जो कुछ ऐसा कर रहा है (Global.asax):

container.RegisterType (); // MyService मेरे बिजनेस लॉजिक लेयर में है

MyService वर्ग अपने निर्माता में मेरे भंडार का उपयोग करता है जिसका अर्थ है कि जब उन MyService कक्षाओं में से एक बनाया जाता है तो MyRepository भी आवश्यक है:

सार्वजनिक सेवा {}

जैसा कि आप देख सकते हैं मैंने अभी भी अपने कंटेनर में IRepository को कॉन्फ़िगर नहीं किया है।

मैं इसे अपने Global.asax में नहीं करना चाहता क्योंकि मैं MVC (देखें) स्तरीय के लिए रिपॉजिटरी के किसी भी संदर्भ को जोड़ना नहीं चाहता।

इसे कॉन्फ़िगर करने के लिए सबसे अच्छी जगह कहां है? मैं यहाँ उलझन में हूँ ...।

अग्रिम में धन्यवाद।

उत्तर:

जवाब के लिए 2 № 1

आपने कोशिश की है: http://mvcunity.codeplex.com/


उत्तर № 2 के लिए 1

मैं आपको बताता हूं कि मैंने अब तक क्या किया:

मैंने अपनी सेवा में एक स्थिर वर्ग बनाया औररिपोजिटरी बाद में, मैं अपने व्यू लेयर (MVC) में यूनिटी कंटेनर बनाता हूं और इसे उन स्टैटिक क्लासेस को पास करता हूं, वे उस कंटेनर को पॉप्युलेट करते हैं, जिसकी उन्हें अगली लेयर की जरूरत होती है, उदाहरण के लिए सर्विस लेयर भी मेरी रिपॉजिटरी में स्टैटिक क्लास को कॉल करती है।

इस तरह मैं कंटेनर को उन सभी चीजों के साथ कॉन्फ़िगर करता हूं जिनकी मुझे आवश्यकता है।

सवाल यह है कि क्या यह एक अच्छी बात है?


जवाब के लिए 0 № 3

अगर हम एकता का उपयोग कर रहे हैं। हम मध्य परत में एकता कंटेनर के विस्तार को लागू कर सकते हैं और नीचे की तरह प्रस्तुति परत में पंजीकरण कर सकते हैं।

          //Data Layer dependency mapping as extension eg : IUnitOfWork
container.AddNewExtension<DependencyInjectionExtension>();

अधिक जानकारी कृपया लेख का अनुसरण करें।

डीआई (एकता) के साथ एन-टियर

धन्यवाद