Вы можете сделать это, но это не соответствует CLS:
[assembly: CLSCompliant(true)]
class Foo : Attribute
{
public Foo(string[] vals) { }
}
[Foo(new string[] {"abc","def"})]
static void Bar() {}
Показывает:
Warning 1 Arrays as attribute arguments is not CLS-compliant
Для регулярного использования отражения может быть предпочтительным иметь несколько атрибутов, т.е.
[Foo("abc"), Foo("def")]
Однако это не будет работать с TypeDescriptor
/ PropertyDescriptor
, где поддерживается только один экземпляр любого атрибута (первый или последний выигрыш, я не могу вспомнить, какой).