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

use*_*874 2 .net c# reflection static memberinfo

我有一个System.Reflection.EventInfo对象,我想知道这个对象描述的事件是否是静态的.不像System.Reflection.MethodInfo,EventInfo没有IsStatic财产可以告诉我我需要什么.那么,我怎么能在C#中做到这一点?

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

Yuv*_*kov 5

Event,声明时,在引擎盖下变成键入作为一种特殊的方法delegate具有AddRemove方法.

你可以做的是检查Add生成的方法是否是static:

var isStaticEvent = eventInfo.GetAddMethod().IsStatic;
Run Code Online (Sandbox Code Playgroud)