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.
[Visual Basic] <Flags> <Serializable> Public Enum AttributeTargets [C#] [Flags] [Serializable] public enum AttributeTargets [C++] [Flags] [Serializable] __value public enum AttributeTargets [JScript] public Flags Serializable enum AttributeTargets
AttributeTargets is used as a parameter of AttributeUsageAttribute 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.
| Member name | Description | Value |
|---|---|---|
| All
Supported by the .NET Compact Framework. |
Attribute can be applied to any application element. | 16383 |
| Assembly
Supported by the .NET Compact Framework. |
Attribute can be applied to an assembly. | 1 |
| Class
Supported by the .NET Compact Framework. |
Attribute can be applied to a class. | 4 |
| Constructor
Supported by the .NET Compact Framework. |
Attribute can be applied to a constructor. | 32 |
| Delegate
Supported by the .NET Compact Framework. |
Attribute can be applied to a delegate. | 4096 |
| Enum
Supported by the .NET Compact Framework. |
Attribute can be applied to an enumeration. | 16 |
| Event
Supported by the .NET Compact Framework. |
Attribute can be applied to an event. | 512 |
| Field
Supported by the .NET Compact Framework. |
Attribute can be applied to a field. | 256 |
| Interface
Supported by the .NET Compact Framework. |
Attribute can be applied to an interface. | 1024 |
| Method
Supported by the .NET Compact Framework. |
Attribute can be applied to a method. | 64 |
| Module
Supported by the .NET Compact Framework. |
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. |
2 |
| Parameter
Supported by the .NET Compact Framework. |
Attribute can be applied to a parameter. | 2048 |
| Property
Supported by the .NET Compact Framework. |
Attribute can be applied to a property. | 128 |
| ReturnValue
Supported by the .NET Compact Framework. |
Attribute can be applied to a return value. | 8192 |
| Struct
Supported by the .NET Compact Framework. |
Attribute can be applied to a structure; that is, a value type. | 8 |
The following code sample illustrates the application of the AttributeTargets enumeration:
[C#] 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 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; static void Main(string[] args) { } } } [JScript] import System; package AttTargsJS { // This attribute is only valid on a class. AttributeUsage(AttributeTargets.Class) public class ClassTargetAttribute extends Attribute { } // This attribute is only valid on a method. AttributeUsage(AttributeTargets.Method) public class MethodTargetAttribute extends Attribute { } // This attribute is only valid on a constructor. AttributeUsage(AttributeTargets.Constructor) public class ConstructorTargetAttribute extends Attribute { } // This attribute is only valid on a field. AttributeUsage(AttributeTargets.Field) public class FieldTargetAttribute extends Attribute { } // This attribute is valid on a class or a method. AttributeUsage(AttributeTargets.Class|AttributeTargets.Method) public class ClassMethodTargetAttribute extends Attribute { } // This attribute is valid on any target. AttributeUsage(AttributeTargets.All) public class AllTargetsAttribute extends Attribute { } ClassTargetAttribute ClassMethodTargetAttribute AllTargetsAttribute public class TestClassAttribute { ConstructorTargetAttribute AllTargetsAttribute function TestClassAttribute() { } MethodTargetAttribute ClassMethodTargetAttribute AllTargetsAttribute public function Method1() { } FieldTargetAttribute AllTargetsAttribute public var myInt : int; static function Main(args : String[]) { } } }
[Visual Basic, C++] No example is available for Visual Basic or C++. To view a C# or JScript example, click the Language Filter button
in the upper-left corner of the page.
Namespace: System
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework - Windows CE .NET
Assembly: Mscorlib (in Mscorlib.dll)