Windows apps
Collapse the table of content
Expand the table of content
Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

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)

[SerializableAttribute]
[FlagsAttribute]
[ComVisibleAttribute(true)]
public enum class AttributeTargets

Member nameDescription
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.

Interface

Attribute can be applied to an interface.

Method

Attribute can be applied to a method.

Module

Attribute can be applied to a 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.

System_CAPS_noteNote

Visual Basic and Visual C++ syntax currently do not support the application of attributes to type parameters.

using namespace System;

namespace AttTargsCS
{

   // This attribute is only valid on a class.

   [AttributeUsage(AttributeTargets::Class)]
   public ref class ClassTargetAttribute: public Attribute{};


   // This attribute is only valid on a method.

   [AttributeUsage(AttributeTargets::Method)]
   public ref class MethodTargetAttribute: public Attribute{};


   // This attribute is only valid on a constructor.

   [AttributeUsage(AttributeTargets::Constructor)]
   public ref class ConstructorTargetAttribute: public Attribute{};


   // This attribute is only valid on a field.

   [AttributeUsage(AttributeTargets::Field)]
   public ref class FieldTargetAttribute: public Attribute{};


   // This attribute is valid on a class or a method.

   [AttributeUsage(AttributeTargets::Class|AttributeTargets::Method)]
   public ref class ClassMethodTargetAttribute: public Attribute{};


   // This attribute is valid on any target.

   [AttributeUsage(AttributeTargets::All)]
   public ref class AllTargetsAttribute: public Attribute{};


   [ClassTarget]
   [ClassMethodTarget]
   [AllTargets]
   public ref class TestClassAttribute
   {
   private:

      [ConstructorTarget]
      [AllTargets]
      TestClassAttribute(){}


   public:

      [MethodTarget]
      [ClassMethodTarget]
      [AllTargets]
      void Method1(){}


      [FieldTarget]
      [AllTargets]
      int myInt;
      static void Main(){}

   };

}

Universal Windows Platform
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top
Show:
© 2017 Microsoft