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;
}