2014-12-02 6 views
11
[AttributeUsage(AttributeTargets.Property)] 
public class MyAttribute : Attribute 
{ 
... 
} 

chcę tego atrybutu niestandardowego używany zarówno na właściwości i fileds ale inne nie. Jak przypisać wiele celów (AttributeTargets.Property i AttributeTargets.Field)? Lub po prostu nie jest możliwe?Wiele AttributeTargets w AttributeUsage

I nie jest to, czego chcę, to AttributeTargets.All.

Odpowiedz

19

Można określić wiele celów, jak ten, za pomocą (bitowe OR) operator | określić wiele wartości ENUM:

[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] 
public class MyAttribute : Attribute 
{ 
    ... 
} 

bitowe OR operator pracuje z wyliczenia AttributeTargets ponieważ jego wartości są przypisane szczególne sposób i jest oznaczony atrybutem Flags.

Jeśli zależy Ci, aby można przeczytać tutaj:

+0

Dzięki stary! Próbowałem '||' ale nigdy nie myślałem o '|'. –