AttributeTargets Enumeration
Microsoft Silverlight will reach end of support after October 2021. Learn more.
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)
Syntax
'Declaration
<ComVisibleAttribute(True)> _
<FlagsAttribute> _
Public Enumeration AttributeTargets
[ComVisibleAttribute(true)]
[FlagsAttribute]
public enum AttributeTargets
Members
Member name | Description | |
---|---|---|
Assembly | Attribute can be applied to an assembly. | |
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.
|
|
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.
Note:
Currently, this attribute can be applied only in C#, Microsoft intermediate language (MSIL), and emitted code.
|
|
All | Attribute can be applied to any application element. |
Remarks
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.
Examples
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
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) {
}
}
}
Version Information
Silverlight
Supported in: 5, 4, 3
Silverlight for Windows Phone
Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0
XNA Framework
Supported in: Xbox 360, Windows Phone OS 7.0
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.