कोड में केवल बाइंडिंग को परिभाषित करने के साथ समस्या यह है कि आपको डीएलएल के संदर्भ को जोड़ना होगा। आप नए डीएल (पुराने को संदर्भ हटाने के संदर्भ में) को जोड़ने के बिना बाध्यकारी नहीं बदल सकते हैं, कोड बदल सकते हैं और पुनः संकलित कर सकते हैं।
अगर हमारे पास xml कॉन्फ़िगरेशन था तो मुझे संदर्भ की आवश्यकता नहीं होगी, और उसे पुन: संकलित नहीं करना होगा। अभी मेरे पास एमवीसी ऐप है जो नियंत्रकों को रिपॉजिटरीज पास करने के लिए DI का उपयोग कर रहा है। बाइंडिंग जोड़ने के लिए निनजा कोड और कुछ भी नहीं, भंडारों के ठोस कार्यान्वयन का उपयोग करता है। और फिर भी मुझे कार्यान्वयन वाले डीएलएल में संदर्भ जोड़ने की जरूरत है। कोड की केवल एक पंक्ति के लिए!
या शायद निनजेक्ट का उपयोग करके इसे प्राप्त करने की संभावना है?
स्रोत
2011-03-27 21:07:41
यह आश्चर्यजनक है कि वे एक प्लस की तरह नकारात्मक ध्वनि कैसे बना सकते हैं। अधिकांश अन्य DI \ Ioc आपको एक्सएमएल या कोड का उपयोग करने की अनुमति देता है। –
यह गैर-नकारात्मक है। जानबूझ कर कट एक्सएमएल समर्थन, क्योंकि यह एक रखरखाव दर्द है। – Restuta
मैं ज्यादातर अपने बाइंडिंग को मैप करने के लिए कोड का उपयोग करता हूं लेकिन ऐसे मामले हैं जो कॉन्फ़िगरेशन काम करता है। डीबग के लिए मैं IMailService को VirtualMailService पर बाध्य करना चाहता हूं लेकिन रिलीज में SmtpMailService का उपयोग करना चाहता हूं। कॉन्फ़िगरेशन फ़ाइलों को रिलीज पर्यावरण के आधार पर बदल दिया जाता है। –