[英]Get event parameters via reflection
我無法弄清楚如何獲取事件的參數類型。
例如,我只能看到使用MethodInfo來獲取參數,但我有一個EventInfo或FieldInfo。
我想要的是能夠從這里得到'布爾':
Public Event EventName(ByVal sender As Object, ByVal value As Boolean)
我理論上可以嘗試類似GetRaiseMethod()的東西,但這不起作用(因為該方法根據此鏈接返回null),即使它確實需要首先進行方法綁定,這意味着只需要確認測試套件事件在初始化時具有某個類型參數。
有任何想法嗎?
假設事件EventName
在EventName
類中DeclaringClass
且事件至少包含參數,您可以獲得第二個參數的類型,如下所示。 否則你可能會收到一個例外。
Type secondEventHandlerParameterType =
typeof(DeclaringClass).
GetEvent("EventName").
EventHandlerType.
GetMethod("Invoke").
GetParameters()[1].
ParameterType;
我嘗試使用Daniel解決方案,但在我的PCL中獲得了TypeInitializationException
異常。
以下代碼對我有用,看起來更清晰:
Type secondEventHandlerParameterType =
typeof(DeclaringClass).
GetEvent("EventName").
EventHandlerType.
GenericTypeArguments.
First();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.