private static bool BaseTypeHasMatchingPublicMethod(Type baseDef, MethodInfo targetMethod) { return baseDef.GetMethods() .Any( x => x.Name == targetMethod.Name && x.ReturnType == targetMethod.ReturnType && x.GetParameters() .Select(y => y.ParameterType) .SequenceEqual(targetMethod.GetParameters().Select(y => y.ParameterType))); }