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

本文关键字:之间 MethodInfo 兼容性 EventInfo 检查 | 更新日期: 2023-09-27 18:37:02

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之间的签名(又名返回类型和参数信息)。我可以从MethodInfo获取返回类型和参数信息,但不能从EventInfo获取。有什么可以实现的吗?

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

对于EventInfoEventHandlerType将是一个代表。

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

然后简单地与MethodInfo进行比较.