AttributeTargets Enumeration
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
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: SystemAssembly: 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. Note:Currently, this attribute can be applied only in C#, Microsoft intermediate language (MSIL), and emitted code. | |
| Interface | Attribute can be applied to an interface. | |
| Method | Attribute can be applied to a method. | |
| Module | Attribute can be applied to a module. Note:Module refers to a portable executable file (.dll or.exe) and not a Visual Basic standard 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 syntax currently does not support the application of attributes to type parameters. |
Module DemoModule ' This attribute is only valid on a class. <AttributeUsage(AttributeTargets.Class)> _ Public Class ClassTargetAttribute Inherits Attribute End Class ' This attribute is only valid on a method. <AttributeUsage(AttributeTargets.Method)> _ Public Class MethodTargetAttribute Inherits Attribute End Class ' This attribute is only valid on a constructor. <AttributeUsage(AttributeTargets.Constructor)> _ Public Class ConstructorTargetAttribute Inherits Attribute End Class ' This attribute is only valid on a field. <AttributeUsage(AttributeTargets.Field)> _ Public Class FieldTargetAttribute Inherits Attribute End Class ' This attribute is valid on a class or a method. <AttributeUsage(AttributeTargets.Class Or AttributeTargets.Method)> _ Public Class ClassMethodTargetAttribute Inherits Attribute End Class ' This attribute is valid on any target. <AttributeUsage(AttributeTargets.All)> _ Public Class AllTargetsAttribute Inherits Attribute End Class <ClassTarget(), _ ClassMethodTarget(), _ AllTargets()> _ Public Class TestClassAttribute <ConstructorTarget(), _ AllTargets()> _ Public Sub New() End Sub <MethodTarget(), _ ClassMethodTarget(), _ AllTargets()> _ Public Sub Method1() End Sub <FieldTarget(), _ AllTargets()> _ Public myInt As Integer End Class Sub Main() End Sub End Module
Note: