Catel.Fody.CecilExtensions.FindConstructor C# (CSharp) Method

FindConstructor() public static method

public static FindConstructor ( this typeReference, List types ) : MethodReference
typeReference this
types List
return Mono.Cecil.MethodReference
        public static MethodReference FindConstructor(this TypeDefinition typeReference, List<TypeDefinition> types)
        {
            foreach (var ctor in typeReference.GetConstructors())
            {
                if (ctor.Parameters.Count == types.Count)
                {
                    var isValid = true;

                    for (var i = 0; i < ctor.Parameters.Count; i++)
                    {
                        var parameter = ctor.Parameters[i];
                        if (!string.Equals(parameter.ParameterType.FullName, types[i].FullName))
                        {
                            isValid = false;
                            break;
                        }
                    }

                    if (isValid)
                    {
                        return ctor;
                    }
                }
            }

            return null;
        }