使用反射确定事件是否是静态的
本文关键字:是否是 静态 事件 反射 | 更新日期: 2023-09-27 18:26:19
我有一个System.Reflection.EventInfo
对象,我想知道这个对象描述的事件是否是静态的。与System.Reflection.MethodInfo
不同,EventInfo
没有IsStatic
属性来告诉我需要什么。那么,我如何在C#中做到这一点呢?
此外,如果我有一个MemberInfo
对象来描述我的类的某个成员(可以是属性、方法、字段等),我如何确定这个成员是否是静态的?唯一的方法是将我的MemberInfo
对象强制转换为所需的类型(例如,如果这是一个方法,则转换为MethodInfo
),然后检查该成员是否是静态的吗?
一个Event
在声明时会变成一个特殊的方法,类型为delegate
,带有Add
和Remove
方法。
您可以做的是检查正在生成的Add
方法,看看它是否是static
:
var isStaticEvent = eventInfo.GetAddMethod().IsStatic;