Динамическое подключение dll, method not found - C#
Формулировка задачи:
Первый раз у вас на форуме, так что извиняюсь если что не так оформлю
В общем, Ошибка: "method 'Testlibra.Class1.Init' not found"
Подключаю библиотеку
Вызов библиотеки :
Вроде все делал по подобию [ссылка на форум]
но что то не так
Огромная просьба, объясните, что не так
Мне нужно просто подключить библиотеку, чтоб она вернула какое то значение...
using ModuleDelegate; namespace ModuleDelegate { public delegate void CallBackDelegate(object[] args); } namespace TestLibra { public class Class1 { public string Init(ModuleDelegate.CallBackDelegate dcallback) { object[] args = { "Hello" }; dcallback(args); return "ok"; } public delegate void CallBackDelegate(string msg); } }
private bool loadDLL(string name) { bool res = false; try { Assembly extAssemblyFile = Assembly.LoadFile("C:/Users/Hesayhello/Documents/Visual Studio 2010/Projects/Deep/Deep/TestLibra.dll"); Type ExtAssemblyType = extAssemblyFile.GetType("TestLibra.Class1"); object ExtAssembly = Activator.CreateInstance(ExtAssemblyType); CallBackDelegate dcallback = new CallBackDelegate(this.DLLCallback); object[] args = { dcallback }; res = (bool)ExtAssemblyType.InvokeMember("Init", BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Instance | BindingFlags.SetProperty, null, ExtAssembly, args); } catch (Exception ex) { string message = ex.Message; if (ex.InnerException != null) message += Environment.NewLine + ex.InnerException.Message; MessageBox.Show(message); } return res; }
Решение задачи: «Динамическое подключение dll, method not found»
textual
Листинг программы
if (t.FullName == "TestLibra.Form1") { Object instance = Activator.CreateInstance(t); // Создание объекта полученного типа MethodInfo meth = t.GetMethod("Show", new Type[] { }, null); meth.Invoke(instance, null); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д