मेरे पास मेरे समाधान में एक स्थिर वर्ग है जिसका उपयोग विभिन्न असेंबली के साथ काम करने के लिए किया जाता है। मैं उन्हें एमईएफ के माध्यम से जोड़ना चाहता हूं, इसलिए मैंने कक्षा में एक क्षेत्र बनाया।सी # एमईएफ उपयोग स्थिर कक्षाओं
public static A LoadPackage(string filePath)
{
var catalog = new AggregateCatalog();
catalog.Catalogs.Add(new AssemblyCatalog(filePath));
var _container = new CompositionContainer(catalog);
???
}
तो वहाँ अब एक तरह से विधानसभा filepath द्वारा निर्दिष्ट से प्रकार आयात करने के लिए है:
[Import(typeof(A))]
static private A _a1;
तो मैं एक तरीका है जिसके मैं विधानसभा एक तर्क के रूप नाम पारित करने के लिए है?
मैं नहीं कर सकते:
_container.ComposeParts(this);
के बाद से वर्ग `स्थिर है और न तो मैं और क्या कर सकते हैं इस
_container.ComposeParts(_a1);
के बाद से A
नहीं है (पूरी तरह से के साथ शुरू गलत हो सकता है जो) किसी भी कंस्ट्रक्टर्स होती है (इसलिए _a1
रिक्त है)
क्या कोई कारण है कि इसे स्थैतिक होना चाहिए? आप जो कुछ भी आयात/निर्यात डिफ़ॉल्ट रूप से सिंगलटन होंगे, जो ज्यादातर मामलों में स्थैतिक वर्ग होने से बेहतर है। – eandersson
यह उन विकल्पों में से एक है जिन पर मैं विचार कर रहा हूं। इसे स्थैतिक रखने का कारण यह है कि मैं अपने पूरे प्रोजेक्ट में कोड बदलना नहीं चाहता हूं। (यानी - मैं आलसी हूं)) – noaRAVE
मुझे पूरा यकीन है कि आप सीधे एमईएफ के साथ स्थिर कक्षाओं का उपयोग नहीं कर सकते हैं, लेकिन मैं नहीं करता निश्चित रूप से यह नहीं पता है। – eandersson