मैं क्रम की असेंबली लोड करने के लिए कोशिश कर रहा हूँ, और मैं कारण है कि मैं विधानसभा में एक प्रकार का एक उदाहरण स्थिर का उपयोग नहीं बना सकते हैं के रूप में अनिश्चित हूँ Activator.CreateInstance()
। यह Assembly.CreateInstance()
के साथ काम करता है।लोड हो रहा है विधानसभाओं और उदाहरणों बनाने Activator.CreateInstance() का उपयोग कर
string assemblyFilename = "MyAssembly.dll";
string assemblyName = "MyAssembly";
string typeName = "MyAssembly.MyType";
FileInfo fileInfo = new FileInfo(assemblyFilename);
यह काम करता है:
var assembly = Assembly.LoadFrom(assemblyFilename);
Form form = (Form)assembly.CreateInstance(typeName);
लेकिन यह काम नहीं करता:
Assembly.LoadFrom(assemblyFilename);
Form form = (Form)Activator.CreateInstance(assemblyName, typeName).Unwrap();
FileNotFoundException फेंका:
फ़ाइल या विधानसभा 'MyAssembly' लोड नहीं कर सका या एक इसके dependenc का एँ। सिस्टम निर्दिष्ट फाइल का पता लगाने में नाकामयाब रहा।
संपादित करें:
दोनों मामलों में, Assembly.LoadFrom()
कॉल के बाद, मैं देख सकता हूँ कि जब मैं AppDomain.CurrentDomain.GetAssemblies()
में देखो मेरी विधानसभा लोड किया गया है।
AppDomain.CurrentDomain.Load(File.ReadAllBytes(assemblyFileName));
संपादित करें:
दूसरे संस्करण को एक पूर्ण असेंबली नाम निर्दिष्ट करना चाहिए, न केवल प्रदर्शन नाम, और हुड के नीचे विधानसभा.लोड() का उपयोग करना चाहिए। LoadFrom() के समान नहीं है। Fuslogvw.exe –
के साथ समस्या निवारण "MyAssembly, संस्करण = 1.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 5dc3e20777fed081" के रूप में? मुझे एक ही त्रुटि मिलती है – davenewza
मैंने GetAssemblies() में सीधे "MyAssembly" से पूर्ण नाम की प्रतिलिपि बनाई है और यह अभी भी काम नहीं करता है। इतनी उलझन! – davenewza