How to get MethodInfo of interface method, having implementing MethodInfo of class method?

.net, c#, methodinfo, reflection

Solution

OK, I found a way, using GetInterfaceMap.

var map = targetType.GetInterfaceMap(interfaceMethod.DeclaringType);
var index = Array.IndexOf(map.InterfaceMethods, interfaceMethod);

if (index == -1)
{
    //this should literally be impossible
}

return map.TargetMethods[index];

Problem

I have a `MethodInfo` of an interface method and `Type` of a class that implements the interface. I want to find the `MethodInfo` of the class method that implements the interface method. The simple `method.GetBaseDefinition()` does not work with interface methods. Lookup by name won't work either, because when implementing interface method explicitly it can have any name (yes, not in C#). So what is the correct way of doing that that covers all the possibilities?

Original source