मैं एमईएफ का उपयोग कर रहा हूं ताकि उपयोगकर्ता मेरी सी # लाइब्रेरी का विस्तार कर सकें। यह अब तक बहुत अच्छा काम कर रहा है, लेकिन अभी मैं इसे इस तरह इस्तेमाल करने की कोशिश कर रहा हूं जिस तरह से मैंने इसे पहले इस्तेमाल नहीं किया है।प्लगइन को मौजूदा कार्यक्षमता को ओवरराइड करने की अनुमति देने के लिए MEF का उपयोग कैसे करें?
MEF के लिए प्राथमिक उपयोग के मामले मैं अब तक देखा है यह है:
- आवेदन आदिम इंटरफेस (
IPerson
) - बाहरी पुस्तकालय MEF और आदिम इंटरफेस का उपयोग करता है मुख्य पुस्तकालय की कार्यक्षमता बढ़ाने के लिए उजागर करता है (उदाहरण के लिए
IPoliceman : IPerson
कहते हैं, कार्यक्षमता) - आवेदन तो यह क्या करना चाहिए
IPerson
के लिए खोज करने के लिए
ImportMany
का उपयोग करता है
लेकिन मुझे ऐसा कुछ चाहिए: मान लीजिए कि मेरे पास टैक्स कैलकुलेटर है जो पैरामीटर का एक गुच्छा लेता है और उन पैरामीटरों के आधार पर अनुमानित कर देता है। मैं चाहता हूं कि उपयोगकर्ता एमईएफ के साथ प्लगइन बनाने में सक्षम हों कि संशोधित करें कि ये गणना कैसे की जाती है। केवल एक प्लगइन जो इसे करता है उसे किसी भी समय लोड किया जा सकता है। अन्यथा, मैं कैसे तय करूं कि वैकल्पिक कार्यान्वयन का उपयोग कैसे किया जाए?
तो मूल रूप से, मेरा प्रश्न इस पर उबाल जाता है: आम तौर पर एमईएफ कक्षाओं और विधियों के कार्यान्वयन को जोड़ता है। उपयोगकर्ताओं को को कार्यान्वित करने की अनुमति देने के लिए मैं इसका उपयोग कैसे करूं?
यह बहुत आसान लगता है। बस एक प्लगइन को लोड करने की अनुमति दें, और यदि कोई भी उपलब्ध नहीं है तो डिफ़ॉल्ट कार्यान्वयन का उपयोग करें। फिर आप उपयोगकर्ता को अपनी कॉन्फ़िगरेशन में चुन सकते हैं। – eandersson