Как отразить одну DLL и зарегистрировать ее действие<string> event
имя dll-это "RefTest.dll",код, как показано ниже:
using System; namespace RefTest { public class Test { public event Action<string> OnMessage; public void WriteString() { Console.WriteLine("Write String"); OnMessage?.Invoke("ActionMessage"); } } }
Основная программа как показано ниже:
using System; using System.Diagnostics; using System.Reflection; namespace ConsoleAppFixed { class Program { static void Main(string[] args) { Assembly assembly = Assembly.LoadFrom("RefTest.dll"); Type typeClass = assembly.GetType("RefTest.Test"); object obj = Activator.CreateInstance(typeClass); MethodInfo method = typeClass.GetMethod("WriteString"); method.Invoke(obj, null); var t = typeof(Action<string>); Delegate mDelegate = Delegate.CreateDelegate(t, obj, "OnMessage"); //I don't know how to register "OnMessage" event Console.ReadKey(); } public static void Recieve() { } } }
Я не знаю,как зарегистрировать "OnMessage", любая помощь будет оценена по достоинству, спасибо!
Что я уже пробовал:
var t = typeof(Action<string>); Delegate mDelegate = Delegate.CreateDelegate(t, obj, "OnMessage"); //I don't know how to register "OnMessage"