Catel.Fody.CatelType.FindMethodDefinition C# (CSharp) Method

FindMethodDefinition() private method

private FindMethodDefinition ( Mono.Cecil.TypeDefinition type, string methodName, string parameterNames, bool findGenericDefinition, Mono.Cecil.MethodDefinition &methodDefinition ) : bool
type Mono.Cecil.TypeDefinition
methodName string
parameterNames string
findGenericDefinition bool
methodDefinition Mono.Cecil.MethodDefinition
return bool
        private bool FindMethodDefinition(TypeDefinition type, string methodName, string[] parameterNames, bool findGenericDefinition, out MethodDefinition methodDefinition)
        {
            List<MethodDefinition> methodDefinitions;

            if (!findGenericDefinition)
            {
                methodDefinitions = type.Methods.Where(x => x.Name == methodName).OrderBy(definition => definition.Parameters.Count).ToList();
            }
            else
            {
                methodDefinitions = (from method in type.Methods where method.Name == methodName && method.HasGenericParameters select method).ToList();
            }

            if (parameterNames != null)
            {
                methodDefinitions = methodDefinitions.Where(x => x.Parameters.Select(y => y.Name).ToArray().SequenceEqual(parameterNames)).ToList();
            }

            methodDefinition = methodDefinitions.FirstOrDefault();

            return methodDefinition != null;
        }