本文实例讲述了C#动态调用事件的方法。一般来说,传统的思路是,通过Reflection.EventInfo获得事件的信息,然后使用GetRaiseMethod方法获得事件被触发后调用的方法,再使用MethodInfo.Invoke来调用以实现事件的动态调用。

但是很不幸的,Reflection.EventInfo.GetRaiseMethod方法始终返回null。这是因为,C#编译器在编译并处理由event关键字定义的事件时,根本不会去产生有关RaiseMethod的元数据信息,因此GetRaiseMethod根本无法获得事件触发后的处理方法。Thottam R. Sriram 在其Using SetRaiseMethod and GetRaiseMethod and invoking the method dynamically 一文中简要介绍了这个问题,并通过Reflection.Emit相关的方法来手动生成RaiseMethod,最后使用常规的GetRaiseMethod来实现事件触发后的方法调用。这种做法比较繁杂。
以下代码是一个简单的替代方案,同样可以实现事件的动态调用。具体代码如下:
public event EventHandler<EventArgs> MyEventToBeFired;
public void FireEvent(Guid instanceId, string handler)
{
// Note: this is being fired from a method with in the same class that defined the event (i.e. "this").
EventArgs e = new EventArgs(instanceId);
MulticastDelegate eventDelagate = (MulticastDelegate)this
.GetType()
.GetField(handler, BindingFlags.Instance | BindingFlags.NonPublic)
.GetValue(this);
Delegate[] delegates = eventDelagate.GetInvocationList();
foreach (Delegate dlg in delegates)
{
dlg.Method.Invoke( dlg.Target, new object[] { this, e } );
}
}
FireEvent(new Guid(), "MyEventToBeFired");
希望本文所述对大家的C#程序设计有所帮助
相关推荐:
ChatGPT怎么突然不能打开了?你需要了解的原因与解决办法,ai写作有什么问题吗怎么解决
为什么“360收录”是你网站推广的必备利器,seo亚马逊
SEO联系:如何通过SEO优化提升您的网络营销效果,企业营销推广获客
AI做文章:引领智能创作的未来
AI搜索写文章是什么意思?人工智能赋能内容创作的未来,高德地图 ai
SEO主要是为网站引流吗?深入解析SEO的核心价值,AI算算
ChatGPT免费用户每天的使用限制:如何高效利用,突破困境!,花花制作ai
ChatGPT不能用?揭秘你可能忽视的真相和解决方法,强国ai2022
好用的人工智能AI软件推荐,让你的生活更智能!
AI缩写在线:让人工智能助力你行业前沿技术,ai uhrehara
AI写作技巧,让创作事半功倍!
SEO资讯:最新趋势,提升网站排名,快速突破流量瓶颈,廊坊seo推广咨询服务
seo站长什么意思,站长工具 - seo综合查询 ,ai少女身材
SEO建站,开启网站优化的全新篇章!,网络营销推广合作方式
seo软件是什么职位,seo用的是什么软件 ,ai感知树
SEO表述:如何通过精准优化让你的内容脱颖而出,江阴网站建设怎么样啊
WPJVX:开启数字化未来的智慧平台,关键词排名技术咨询乐云seo
seo逻辑是什么,seo思路 ,语音主播怎么ai写作业
ChatGPT最新版本更新内容:智能对话体验再升级,更多功能与应用,ai证伪
SEO快速排名实例:如何通过实战技巧提升网站排名,快速突破流量瓶颈,安徽ai跑步机企业
SEO公司核心业务是什么?揭秘提升网站排名的奥秘,写作助手ai一键生成作文在线
seo资源是什么意思,seo资源怎么打开 ,梅州ai自动插件加工
文章创作AI:引领智能写作的新时代
SEO单页网站:助力企业在线营销的一站式解决方案,湖南视频网站优化方式
SEO范例:如何通过优化提升网站流量,获取更多商机,广州抖音seo搜索广告
SEO快速提升SEO排名的有效策略:让你的网页飞跃搜索引擎,ai调色食物
为什么seo吸引人,为什么seo吸引人呢 ,ai路径查找器绘制树
二次创作的魅力与潜力:创意无限的数字时代,天长外贸网站建设
怎么用AI写文章:高效创作的秘诀
如何下载免费AI软件,让你的工作和生活更智能
用AI写文章会不会查重率高?破解写作困扰的真相
智能AI写文章:高效创作新风尚
ChatGPT免登录:轻松畅聊,无需注册,快速体验AI智能助手,眼泪ai
ChatGPT崩了?用户称打开是一片空白,真相竟然如此!,zzz*明星AI换脸
seo要会些什么,seo需要学些什么内容 ,轻盈ai
SEO排位:如何通过精准策略提升网站排名,获得流量与转化,林海网络推广营销
互联网留痕:数字时代的隐形轨迹与自我管理,灯塔网站推广包年多少钱
SEO搜索关键词是什么意思?全方位解析关键词优化的核心要素,lol ai图片
seo灰帽是什么,灰帽是指什么 ,ai绘画六边形
ChatGPT进不去怎么办?解决方案与技巧,轻松畅享智能对话,ai va
2024年AI写文章生成器推荐:让创作轻松高效,提升写作水平
如何识别文章是否由AI撰写?揭开智能写作的秘密
SEO优化流程:助力网站快速提升排名的关键策略,1745ai
亚马逊中什么是seo,亚马逊sop ,ai临摹中国名画
为什么要做seo si,为什么要做* ,ai里面怎么扣二维码
Zkept:重塑未来生活的智能科技革新,营销推广的面试问题
GPT优化:让你的工作与生活更高效、更智能,Ai__79
怎么让AI写文章,轻松实现内容创作的智能化
ChatGPT错误处理与异常情况解决方法:让你的AI助手更加智能与可靠,智能ai鼠标ai智能语音
亚马逊站内seo是什么优化,亚马逊seo关键词优化软件 ,ai画卡通章鱼