2010-04-12 5 views
7

जो मैं समझता हूं उससे IServiceLocator वास्तविक आईओसी कंटेनर को दूर करने के लिए एक इंटरफ़ेस है? मैं प्रिज्म के संबंध में पूछ रहा हूं जहां मैं replace Unity with Prism पर कोशिश कर रहा हूं, और मुझे प्रिज्म-क्लास IServiceLocator पर निर्भर करता है। क्या कोई इंटरफ़ेस की भूमिका को स्पष्ट कर सकता है और इसका उपयोग कब किया जा सकता है?IServiceLocator इंटरफ़ेस क्या है?

और भी; Common Service Locator क्या है, और यह IServiceLocator के साथ काम करते समय सहायक होगा?

उत्तर

12

IServiceLocator एक सेवा लोकेटर का एक अमूर्त है। आईओसी कंटेनर सेवा लोकेटर के सुपरसैट्स हैं, इसलिए इन्हें आईएस सर्विस लॉकर द्वारा प्रदर्शित किया जा सकता है। हालांकि, सेवा लोकेटर पैटर्न शुद्ध निर्भरता इंजेक्शन पैटर्न से अधिक घुसपैठ कर रहा है, इसलिए जब भी संभव हो, आपको बाद वाले पक्ष का पक्ष लेने का प्रयास करना चाहिए।

CommonServiceLocator IServiceLocator इंटरफेस और इस इंटरफेस का एक अमूर्त कार्यान्वयन सामान्य व्यवहार को परिभाषित करने और मदद आईओसी कंटेनर उनके IServiceLocator अनुकूलक (हर प्रमुख आईओसी कंटेनर इस तरह के एक अनुकूलक प्रदान करता है) को परिभाषित करने देता है।

यह भी देखें:

+0

Thx! अच्छा उत्तर। हालांकि निनजेक्ट के लिए एक IServiceLocator एडाप्टर नहीं मिल रहा है, लेकिन शायद यह प्रमुख नहीं माना जाता है? (रेफरी * (प्रत्येक प्रमुख आईओसी कंटेनर ऐसे एडाप्टर प्रदान करता है) *) – stiank81

+0

देखें http://github.com/enkari/ninject/tree/2.0.0.0/src/CommonServiceLocator.NinjectAdapter/ –

+0

कूल - thx। हालांकि पहले से ही वही बात लिखी है .. – stiank81

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