CustomAttributeBuilder GetCustomAttributeBuilder(Attribute node)
{
var constructor = (IConstructor)GetEntity(node);
var constructorInfo = GetConstructorInfo(constructor);
object[] constructorArgs = ArgumentsForAttributeConstructor(constructor, node.Arguments);
var namedArgs = node.NamedArguments;
if (namedArgs.Count > 0)
{
PropertyInfo[] namedProperties;
object[] propertyValues;
FieldInfo[] namedFields;
object[] fieldValues;
GetNamedValues(namedArgs,
out namedProperties,
out propertyValues,
out namedFields,
out fieldValues);
return new CustomAttributeBuilder(
constructorInfo, constructorArgs,
namedProperties, propertyValues,
namedFields, fieldValues);
}
return new CustomAttributeBuilder(constructorInfo, constructorArgs);
}