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.
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
| Member name | Description | |||
|---|---|---|---|---|
![]() ![]() ![]() | Assembly | Attribute can be applied to an assembly. | ||
![]() ![]() ![]() | Module | Attribute can be applied to a module.
| ||
![]() ![]() ![]() | Class | Attribute can be applied to a class. | ||
![]() ![]() ![]() | Struct | Attribute can be applied to a structure; that is, a value type. | ||
![]() ![]() ![]() | Enum | Attribute can be applied to an enumeration. | ||
![]() ![]() ![]() | Constructor | Attribute can be applied to a constructor. | ||
![]() ![]() ![]() | Method | Attribute can be applied to a method. | ||
![]() ![]() ![]() | Property | Attribute can be applied to a property. | ||
![]() ![]() ![]() | Field | Attribute can be applied to a field. | ||
![]() ![]() ![]() | Event | Attribute can be applied to an event. | ||
![]() ![]() ![]() | Interface | Attribute can be applied to an interface. | ||
![]() ![]() ![]() | Parameter | Attribute can be applied to a parameter. | ||
![]() ![]() ![]() | Delegate | Attribute can be applied to a delegate. | ||
![]() ![]() ![]() | ReturnValue | Attribute can be applied to a return value. | ||
![]() ![]() ![]() | GenericParameter | Attribute can be applied to a generic parameter.
| ||
![]() ![]() ![]() | All | Attribute can be applied to any application element. |
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 System; namespace AttTargsCS { // This attribute is only valid on a class. [AttributeUsage(AttributeTargets.Class)] public class ClassTargetAttribute : Attribute { } // This attribute is only valid on a method. [AttributeUsage(AttributeTargets.Method)] public class MethodTargetAttribute : Attribute { } // This attribute is only valid on a constructor. [AttributeUsage(AttributeTargets.Constructor)] public class ConstructorTargetAttribute : Attribute { } // This attribute is only valid on a field. [AttributeUsage(AttributeTargets.Field)] public class FieldTargetAttribute : Attribute { } // This attribute is valid on a class or a method. [AttributeUsage(AttributeTargets.Class|AttributeTargets.Method)] public class ClassMethodTargetAttribute : Attribute { } // This attribute is valid on a generic type parameter. [AttributeUsage(AttributeTargets.GenericParameter)] public class GenericParameterTargetAttribute : Attribute { } // This attribute is valid on any target. [AttributeUsage(AttributeTargets.All)] public class AllTargetsAttribute : Attribute { } [ClassTarget] [ClassMethodTarget] [AllTargets] public class TestClassAttribute { [ConstructorTarget] [AllTargets] TestClassAttribute() { } [MethodTarget] [ClassMethodTarget] [AllTargets] public void Method1() { } [FieldTarget] [AllTargets] public int myInt; public void GenericMethod< [GenericParameterTarget, AllTargets] T>(T x) { } static void Main(string[] args) { } } }
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.


