का उपयोग करने के लिए एमईएफ को निर्देशित करें। मैं System.ComponentModel.Composition से .NET-4.0 से Visual Studio 2010 बीटा 2 में पहली बार प्रबंधित एक्सटेंसिबिलिटी फ्रेमवर्क का प्रयास कर रहा हूं।किसी भी उपलब्ध असेंबली
मैं कंपोज़िशनकंटर को नीचे दो वैकल्पिक दिनचर्या का उपयोग करके अपनी कार्यान्वयन असेंबली खोजने में असमर्थ रहा हूं।
प्रथम प्रयास (इस MEF के एक पुराने codeplex रिलीज में काम किया):
var composition = new CompositionBatch();
composition.AddPart(this);
var container = new CompositionContainer(new DirectoryCatalog(AppDomain.CurrentDomain.BaseDirectory));
container.Compose(composition);
दूसरा प्रयास (इस बीटा 1 में काम किया, मुझे लगता है):
var aggregateCatalog = new AggregateCatalog(
new AssemblyCatalog(Assembly.GetExecutingAssembly()),
new DirectoryCatalog(AppDomain.CurrentDomain.BaseDirectory));
var compositionContainer = new CompositionContainer(aggregateCatalog);
compositionContainer.ComposeParts(this);
वहाँ एक नया तरीका है बीटा 2 में ऐसा करने के लिए?
संपादित करें: यह संरचना के साथ कुछ भी नहीं हुआ।
[Import] public static ILog Log { get; set; }
जो किया जाना चाहिए था:
[Import] public ILog Log { get; set; }
मैं क्योंकि अधिक विस्तृत रूप से फैशन में डीबगिंग के ऋषि सलाह समस्या हल के रूप में स्वीकार डैनियल जवाब में चिह्नित मैं एक स्थिर संपत्ति मेरी आयातित कार्यान्वयन का प्रतिनिधित्व किया था।
मैं अब कुछ ही हफ्तों के लिए बीटा 2 का उपयोग कर रहे हैं और किसी भी मुद्दे के बिना अपने 2 उदाहरण का उपयोग किया गया है। क्या आपके पास निष्पादन असेंबली में कोई आंतरिक भाग है या क्या वे बेस डायरेक्टरी में स्थित हैं? क्या आप यह पुष्टि करने में सक्षम हैं कि AppDomain.CurrentDomain.BaseDirectory नक्शे रनटाइम पर क्या हैं? साथ ही, क्या उपरोक्त स्निपेट वाले वर्ग में कोई घोषित आयात शामिल है? बस यह सुनिश्चित कर लें कि कक्षा के उदाहरण (इस) के पास कोई आयात नहीं होने पर कुछ भी नहीं उठाया जाएगा – JamesEggers
मुझे कुछ दिक्कत करनी होगी। कार्यान्वयन सरल हैं जबकि मैं इसे काम करने की कोशिश करता हूं। बेस डायरेक्टरी वैध है, कक्षा में आयात है। फिर भी, थोड़ा और सिरदर्द और मैं अंत में वहां पहुंच जाऊंगा। – grenade
क्या कोई बता सकता है कि एक स्थिर संपत्ति के लिए [आयात] का उपयोग करना क्यों संभव नहीं है? – Dave