2009-05-16 17 views

उत्तर

12

vdhant - इसी तरह के कंटेनर में इस्तेमाल किया जा के लिए होती हैं नहीं है।

आप ISubject का उपयोग करना चाहते हैं, है ना? तो अगर आप पारित कर दिया टी आप अपने अमूर्त तोड़ने रहे हैं क्योंकि आपके फोन करने वाले को पता होना चाहिए कि ISubject, वास्तव में एक विषय है, और उस की तुलना में अधिक है, इसकी एक Subject<T> और है कि यह एक ठोस टी की आवश्यकता है

कोई कंटेनर कि अनुमति देगा , लेकिन यह एक डिजाइन समस्या है, उपकरण समस्या नहीं है।

एक बात अपने डिजाइन ठीक करने के लिए, बनाने के लिए यह स्पष्ट हो सकता है - बदल तो फिर तुम खुले सामान्य प्रकार ISubject<> रजिस्टर और यह बाँध सामान्य प्रकार Subject<> खोलने के लिए कर सकता है ISubjectISubject<T>

करने के लिए। एक तुम हो -

container.Register(Component.For(typeof(ISubject<>)) 
          .ImplementedBy(typeof(Subject<>))); 

तो फिर तुम एक बात निश्चित है क्या करना

var fooSubject = container.Resolve<ISubject<Foo>>(); 

आप किसी भी संदर्भ नहीं प्रदान की थी तो मैं जवाब के साथ ट्रैक से बाहर हो सकता है सक्षम होगा, लेकिन डिजाइन समस्या

+0

कूल तो मेरा मतलब है कि मुझे इंटरफ़ेस का एक सामान्य संस्करण प्रदान करने की आवश्यकता है और फिर मैं वह कर सकता हूं जो मैं करना चाहता हूं ... मेरे लिए अच्छा लगता है। चीयर्स – vdhant

+0

धन्यवाद मुझे बचाया .. –

+0

@EhsanSajjad –

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