English 中文(简体)
通过反射得到事件参数
原标题:
  • 时间:2009-04-15 01:17:39
  •  标签:

我不能算出的参数类型的事件。

例如,我只能看到使用MethodInfo参数,但我有一个EventInfo或FieldInfo。

我想要的是能够从这得到布尔:

Public Event EventName(ByVal sender As Object, ByVal value As Boolean)

我理论上可以尝试喜欢GetRaiseMethod(),但不会工作(因为这方法返回null / < a href = " http://bytes.com/groups/net/398128-eventinfo-getraisemethod-always-returns-null " rel = " nofollow noreferrer " > < / >)的联系,即使它确实需要一个方法绑定,这是一个测试套件就确认事件有一定的输入参数初始化。

什么好主意吗?

最佳回答

你可以得到第二个参数的类型如下假设事件<代码> EventName > < /代码类中声明<代码> DeclaringClass > < /代码和事件至少有参数。其他您可能会收到一个异常。

Type secondEventHandlerParameterType = 
   typeof(DeclaringClass).
   GetEvent("EventName").
   EventHandlerType.
   GetMethod("Invoke").
   GetParameters()[1].
   ParameterType;
问题回答

我试图使用丹尼尔解决方案,但得到了<代码> PCL TypeInitializationException > < /代码内异常。

下面的代码是我和看起来更清楚:

Type secondEventHandlerParameterType = 
   typeof(DeclaringClass).
   GetEvent("EventName").
   EventHandlerType.
   GenericTypeArguments.
   First();




相关问题
热门标签