Динамическое подключение 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);
                }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5
Похожие ответы