如何在c#中检查EventInfo和MethodInfo之间的签名兼容性?

时间:2015-01-09 05:08:17

标签: c# reflection

public static bool CheckSignature (EventInfo eventInfo, MethodInfo methodInfo)
{
//check signature    
}

public class MonoMethod
    {
        public Component target;
        public string methodName;

        public static Delegate CreateDelegate<T>(MonoMethod monoMethod)
        {
            if (monoMethod.target == null || string.IsNullOrEmpty(monoMethod.methodName))
            {
                return null;
            }

            //Check compatibility before CreateDelegate
            //...if false, return null

            return Delegate.CreateDelegate(typeof (T), monoMethod.target, monoMethod.methodName);
        }
    }

我想查看EventInfoMethodInfo之间的签名(又名 ReturnType ParameterInfo )在从该methodInfo创建委托之前。 我可以从MethodInfo获取 ReturnType ParameterInfo ,但不能从EventInfo获取。 反正有没有?

1 个答案:

答案 0 :(得分:1)

对于EventInfoEventHandlerType将是代表。

通过反射查看Invoke方法以查找签名。

然后只需与MethodInfo进行比较。