2013-08-03 7 views
5

क्या ईएफ 6 मेरी संस्थाओं में निर्भरता इंजेक्शन की अनुमति देता है? नीचे क्या आवश्यकता है इसका एक उदाहरण है।ईएफ: इकाई निर्भरता इंजेक्शन

class User 
{ 
    private IPasswordEncryptor _passwordEncryptor; 

    public User(IPasswordEncryptor passwordEncryptor) 
    { 
     _passwordEncryptor = passwordEncryptor; 
    } 

    ... 
} 

तो, मैं इकाई की रूपरेखा में उपयोगकर्ता में IPasswordEncryptor इंजेक्षन के लिए एक रास्ता खोजने की जरूरत है। यह एक सामान्य सवाल है, मैंने अभी उपरोक्त एक उदाहरण प्रदान किया है।

+1

आप इसे पुनर्विचार करना चाहेंगे। Http://thinkbeforecoding.com/post/2009/03/04/How-not-to-inject-services-in-entities –

+3

किसी भी अन्य ऑब्जेक्ट्स के रूप में संस्थाएं बाहरी निर्भरताएं हो सकती हैं। यह सिर्फ ओओपी है। मेरे दृष्टिकोण से, ईएफ जैसे दिए गए ढांचे को इकाई निर्भरताओं को छोड़कर बाधा नहीं होनी चाहिए। उदाहरण के लिए, NHibernate निर्भरताओं को इंजेक्शन देता है। ऊपर दिया गया उदाहरण एक अच्छा उदाहरण है कि इस निर्भरता की आवश्यकता क्यों है। उपयोगकर्ता पासवर्ड के प्रबंधन के लिए ज़िम्मेदार है। हालांकि, उपयोगकर्ता चिंतित नहीं है कि एन्क्रिप्शन कैसे कार्यान्वित किया जाता है और क्या एल्गोरिदम चुना जाता है। इसलिए यह IPasswordEncryptor पर निर्भर करता है। – Markus

+0

कभी मार्कस करने का कोई तरीका ढूंढें? मेरे पास एक बहुत अच्छा उपयोग मामला है। –

उत्तर

2

एक डि कंटेनर का उपयोग कर उन लोगों के लिए हैं, तो आपको जड़ में निर्भरता इंजेक्षन करने की कोशिश हो सकती है। इससे समस्याओं का पूरा मेजबान होता है, जो इतने सारे हैं कि मैं इसमें शामिल होने से पर पूरी तरह से अच्छी पोस्ट नहीं निकालूंगा। इसके बजाए, एक और, इरादा-खुलासा विकल्प: डबल प्रेषण पैटर्न है।

जिमी बोगर्ड द्वारा एक पोस्ट से उद्धृत। उस पोस्ट को खोजें (जिसमें एक उदाहरण शामिल है) यहां: http://lostechies.com/jimmybogard/2010/03/30/strengthening-your-domain-the-double-dispatch-pattern/

संबंधित मुद्दे