private CustomAttribute CreateCustomAttribute(string attributeTypeName, params object[] parameters)
{
var typeDefinition = _typeDefinition.Module.FindType("Catel.Fody.Attributes", attributeTypeName);
var typeList = new List<TypeDefinition>();
foreach (var parameter in parameters)
{
var parameterType = parameter.GetType();
if (parameterType.IsClass)
{
parameterType = typeof(object);
}
typeList.Add(_msCoreReferenceFinder.GetCoreTypeReference(parameterType.FullName).Resolve());
}
var constructor = typeDefinition.FindConstructor(typeList).Resolve();
var attribute = new CustomAttribute(constructor);
for (var i = 0; i < constructor.Parameters.Count; i++)
{
attribute.ConstructorArguments.Add(new CustomAttributeArgument(typeList[i], parameters[i]));
}
return attribute;
}
}