मैं MEF और मैं उपयोग कर रहा हूँ एक ही अनुबंध प्रकार होने दो निर्यात है, लेकिन अलग-अलग अनुबंध नाम के साथसेवा लोकेटर: Get सभी निर्यात
उदाहरण के लिए:
[Export("TypeA", typeof(MyPlugin))]
[Export("TypeB", typeof(MyPlugin))]
मैं प्रत्येक निर्यात का उपयोग कर पुनः प्राप्त कर सकता है अपने संबंधित अनुबंध नाम:
ServiceLocator.GetExportedValues<MyPlugin>("TypeA");
लेकिन अब मैं MyPlugin
को लागू सभी उदाहरणों को पुनः प्राप्त करना चाहते हैं। क्या मैं ऐसा कर सकता हूं?
मैं निम्नलिखित कोड का उपयोग कर की कोशिश की है:
ServiceLocator.GetExportedValues<MyPlugin>();
लेकिन यह काम नहीं किया। स्पष्ट रूप से इसका उपयोग केवल विशिष्ट अनुबंध नाम के साथ केवल कार्यान्वयन को पुनर्प्राप्त करने के लिए किया जाता है।
कोई राय?
का उपयोग कर यह कैसे @ default.kramer की तुलना में किसी भी अलग अलग जवाब देने के है उन्हें आयात? –
घोषणा एक जैसी है, फिर भी मैं आपको यह भी दिखाता हूं कि आप मेफ़ को कंटेनर/कैटलॉग को सीधे संदर्भित किए बिना सभी उदाहरणों को कैसे इंजेक्ट कर सकते हैं ... यह एक उचित तरीका है कि किसी को डीआई फ्रेमवर्क का उपयोग कैसे करना चाहिए। –