Puoi farlo, ma non è compatibile con CLS:
[assembly: CLSCompliant(true)]
class Foo : Attribute
{
public Foo(string[] vals) { }
}
[Foo(new string[] {"abc","def"})]
static void Bar() {}
Spettacoli:
Warning 1 Arrays as attribute arguments is not CLS-compliant
Per un utilizzo regolare della riflessione, potrebbe essere preferibile avere più attributi, ad esempio
[Foo("abc"), Foo("def")]
Tuttavia, questo non funzionerà con TypeDescriptor
/PropertyDescriptor
, dove è supportato solo una singola istanza di qualsiasi attributo (o il primo o ultimo vince, non ricordo quale).
fonte
2008-11-06 21:50:21
Hai solo la sintassi per l'array sbagliato. Dovrebbe essere "new int [] {3,4,5}". –