AttributeTargets Enumeration
Specifies the application elements on which it is valid to apply an attribute.
This enumeration has a FlagsAttribute attribute that allows a bitwise combination of its member values.
Assembly: mscorlib (in mscorlib.dll)
| Member name | Description | |
|---|---|---|
| All | Attribute can be applied to any application element. | |
| Assembly | Attribute can be applied to an assembly. | |
| Class | Attribute can be applied to a class. | |
| Constructor | Attribute can be applied to a constructor. | |
| Delegate | Attribute can be applied to a delegate. | |
| Enum | Attribute can be applied to an enumeration. | |
| Event | Attribute can be applied to an event. | |
| Field | Attribute can be applied to a field. | |
| GenericParameter | Attribute can be applied to a generic parameter. | |
| Interface | Attribute can be applied to an interface. | |
| Method | Attribute can be applied to a method. | |
| Module | Attribute can be applied to a module. | |
| Parameter | Attribute can be applied to a parameter. | |
| Property | Attribute can be applied to a property. | |
| ReturnValue | Attribute can be applied to a return value. | |
| Struct | Attribute can be applied to a structure; that is, a value type. |
The AttributeUsageAttribute class uses this enumeration to specify the kind of element on which it is valid to apply an attribute.
AttributeTargets enumeration values can be combined with a bitwise OR operation to get the preferred combination.
The following example illustrates the application of attributes to various targets.
Note |
|---|
Visual Basic and Visual C++ syntax currently do not support the application of attributes to type parameters. |
using namespace System; namespace AttTargsCS { // This attribute is only valid on a class. [AttributeUsage(AttributeTargets::Class)] public ref class ClassTargetAttribute: public Attribute{}; // This attribute is only valid on a method. [AttributeUsage(AttributeTargets::Method)] public ref class MethodTargetAttribute: public Attribute{}; // This attribute is only valid on a constructor. [AttributeUsage(AttributeTargets::Constructor)] public ref class ConstructorTargetAttribute: public Attribute{}; // This attribute is only valid on a field. [AttributeUsage(AttributeTargets::Field)] public ref class FieldTargetAttribute: public Attribute{}; // This attribute is valid on a class or a method. [AttributeUsage(AttributeTargets::Class|AttributeTargets::Method)] public ref class ClassMethodTargetAttribute: public Attribute{}; // This attribute is valid on any target. [AttributeUsage(AttributeTargets::All)] public ref class AllTargetsAttribute: public Attribute{}; [ClassTarget] [ClassMethodTarget] [AllTargets] public ref class TestClassAttribute { private: [ConstructorTarget] [AllTargets] TestClassAttribute(){} public: [MethodTarget] [ClassMethodTarget] [AllTargets] void Method1(){} [FieldTarget] [AllTargets] int myInt; static void Main(){} }; }
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
