Można zrobić, ale to nie jest zgodny z CLS:
[assembly: CLSCompliant(true)]
class Foo : Attribute
{
public Foo(string[] vals) { }
}
[Foo(new string[] {"abc","def"})]
static void Bar() {}
Pokazy:
Warning 1 Arrays as attribute arguments is not CLS-compliant
Do regularnego użycia refleksji może być korzystne posiadanie wielu atrybutów, tj.
[Foo("abc"), Foo("def")]
Jednak to nie będzie działać z TypeDescriptor
/PropertyDescriptor
, gdzie tylko jedno wystąpienie jakiegokolwiek atrybutu jest obsługiwany (pierwszy lub ostatni wygrywa, nie pamiętam który).
Twoja składnia tablicy jest błędna. Powinien to być "nowy int [] {3,4,5}". –