Динамическое подключение 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);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д