使用反射确定事件是否是静态的



我有一个System.Reflection.EventInfo对象,我想知道这个对象描述的事件是否是静态的。与System.Reflection.MethodInfo不同,EventInfo没有IsStatic属性来告诉我需要什么。那么,我如何在C#中做到这一点呢?

此外,如果我有一个MemberInfo对象来描述我的类的某个成员(可以是属性、方法、字段等),我如何确定这个成员是否是静态的?唯一的方法是将我的MemberInfo对象强制转换为所需的类型(例如,如果这是一个方法,则转换为MethodInfo),然后检查该成员是否是静态的吗?

一个Event在声明时会变成一个特殊的方法,类型为delegate,带有AddRemove方法。

您可以做的是检查正在生成的Add方法,看看它是否是static:

var isStaticEvent = eventInfo.GetAddMethod().IsStatic;

相关内容

  • 没有找到相关文章

最新更新