如何在 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);
}
}
我想在从该方法创建委托之前检查EventInfo
和MethodInfo
之间的签名(又名返回类型和参数信息)。我可以从MethodInfo
获取返回类型和参数信息,但不能从EventInfo
获取。有什么可以实现的吗?
对于EventInfo
,EventHandlerType
将是一个代表。
通过反射查看Invoke
方法以查找签名。
然后简单地与MethodInfo
进行比较.