C# 如何获取接口方法的MethodInfo,实现类方法的MethodInfo?

C# 如何获取接口方法的MethodInfo,实现类方法的MethodInfo?,c#,.net,reflection,methodinfo,C#,.net,Reflection,Methodinfo,我有一个接口方法的MethodInfo,还有一个实现接口的类的Type。 我想找到实现接口方法的类方法的MethodInfo 简单的方法.GetBaseDefinition()不适用于接口方法。 按名称查找也不起作用,因为当显式实现接口方法时,它可以有任何名称(是的,不是在C#中) 那么,什么是涵盖所有可能性的正确方法呢?好的,我找到了一种方法,使用 我用这个 var interfacemethodParameterTypes = interfaceMethodInfo.GetParameter

我有一个接口方法的
MethodInfo
,还有一个实现接口的类的
Type
。 我想找到实现接口方法的类方法的
MethodInfo

简单的
方法.GetBaseDefinition()
不适用于接口方法。 按名称查找也不起作用,因为当显式实现接口方法时,它可以有任何名称(是的,不是在C#中)

那么,什么是涵盖所有可能性的正确方法呢?

好的,我找到了一种方法,使用

我用这个

var interfacemethodParameterTypes = interfaceMethodInfo.GetParameters().Select(p => p.ParameterType).ToArray();

var map = targetType.GetInterfaceMap(interfaceMethodInfo.DeclaringType);

return map.TargetType.GetMethod(interfaceMethodInfo.Name, interfacemethodParameterTypes);

处理泛型方法时,索引返回-1。
var interfacemethodParameterTypes = interfaceMethodInfo.GetParameters().Select(p => p.ParameterType).ToArray();

var map = targetType.GetInterfaceMap(interfaceMethodInfo.DeclaringType);

return map.TargetType.GetMethod(interfaceMethodInfo.Name, interfacemethodParameterTypes);