Expand Minimize

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)

'Declaration
<FlagsAttribute> _
Public Enumeration AttributeTargets

Member nameDescription
AllAttribute can be applied to any application element.
AssemblyAttribute can be applied to an assembly.
ClassAttribute can be applied to a class.
ConstructorAttribute can be applied to a constructor.
DelegateAttribute can be applied to a delegate.
EnumAttribute can be applied to an enumeration.
EventAttribute can be applied to an event.
FieldAttribute can be applied to a field.
GenericParameterAttribute can be applied to a generic parameter.
NoteNote:
Currently, this attribute can be applied only in C#, Microsoft intermediate language (MSIL), and emitted code.
InterfaceAttribute can be applied to an interface.
MethodAttribute can be applied to a method.
ModuleAttribute can be applied to a module.
NoteNote:
Module refers to a portable executable file (.dll or.exe) and not a Visual Basic standard module.
ParameterAttribute can be applied to a parameter.
PropertyAttribute can be applied to a property.
ReturnValueAttribute can be applied to a return value.
StructAttribute 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.

NoteNote:

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


Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0

Windows Phone

Show:
© 2015 Microsoft