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

时间:2014-10-12 16:50:49

标签: c# .net reflection static memberinfo

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

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

1 个答案:

答案 0 :(得分:5)

声明后,Event会变成一种特殊的方法,其类型为delegate,并带有AddRemove方法。

您可以做的是检查生成的Add方法是否为static

var isStaticEvent = eventInfo.GetAddMethod().IsStatic;