标题:使用反射注册Action<string>事件的求助
只看楼主
tabz
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2020-5-14
结帖率:0
 问题点数:0 回复次数:1 
使用反射注册Action<string>事件的求助
使用反射,调用方法是会写了,注册事件搞了好久搞不定,特求助大神!

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");

            //这里不会注册了

            Console.ReadKey();
        }

        public static void Recieve()
        {
        }
    }
}


注册接收搞不定,请大神指点,谢谢!
搜索更多相关主题的帖子: 注册 事件 string Action 反射 
2020-09-08 14:48
tabz
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2020-5-14
得分:0 
这个自称中国最大的编程论坛,发硬核的内容根本没有回,所以结贴吧!
2020-09-09 17:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-503102-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012361 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved