मैं MEF उपयोग करने के लिए शुरू कर रहा हूँ, और मैं इस तरह, कई निर्माताओं के साथ एक वर्ग है:MEF निर्माता पैरामीटर
[Export(typeof(ifoo))]
class foo : ifoo {
void foo() { ... }
[ImportingConstructor]
void foo(object par1) { ... }
}
मैं catalog.ComposeExportedValue()
उपयोग कर रहा हूँ जब par1
मूल्य से पीछे नहीं की आपूर्ति के लिए रचना निर्माता:
...
catalog.ComposeExportedValue(par1Value);
catalog.ComposeParts(this);
...
घटकों पकड़ करने के लिए मैं उपयोग कर रहा हूँ:
[ImportMany(typeof(ifoo))]
public List<Lazy<ifoo, ifoometadata>> FooList { get; set; }
और foo
उदाहरण बनाने के लिए मैं मान संपत्ति का उपयोग कर रहा हूं, FooList[0].Value
।
सबकुछ ठीक काम करता है, सिवाय इसके कि foo
कक्षा का दूसरा कन्स्ट्रक्टर कभी नहीं कहा जाता है। क्या गलत है?
जब मैं एमईएफ कक्षा को तत्काल करता हूं तो मैं उस कंस्ट्रक्टर का चयन कैसे करूं जिसका उपयोग करना चाहता हूं?
पर http://stackoverflow.com/questions/2008133/mef-constructor-injection ... यह एक नज़र: यहाँ एक परीक्षण है जो एक वर्ग भी एक डिफ़ॉल्ट निर्माता है पर एक ImportingConstructor का उपयोग कर से पता चलता है * बिल्कुल * एक ही सवाल नहीं है, लेकिन स्वीकृत उत्तर रचनाकारों को आयात करने पर कुछ प्रकाश डालता है जो मदद कर सकता है। –
हां, असल में मैं डैनियल प्लास्ट से जवाब का उपयोग कर रहा हूं, समस्या यह है कि मैं कई कन्स्ट्रक्टर परिभाषाओं का उपयोग करके mef इंस्टेंस सृजन के किसी भी उदाहरण को नहीं ढूंढ सकता। – InterWAS