System.AttributeTargets Enumeration

Specifies the application elements on which it is valid to apply an attribute.

Syntax

[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
public enum AttributeTargets

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.

Members

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.

Example

The following example demonstrates how AttributeTargets can be used with AttributeUsageAttribute so that a user-defined attribute class, Author, can be applied to structures and classes. The Author attribute is then applied to a class. There is no output.

C# Example

using System;

[AttributeUsageAttribute(AttributeTargets.Class|
                         AttributeTargets.Struct)]
public class Author : Attribute {

   public Author(string Name) {
 
     this.name = Name; }
     string name;
   }

[Author("John Q Public")]
class JohnsClass {

   public static void Main() {
   }
}

Requirements

Namespace: System
Assembly: mscorlib (in mscorlib.dll)
Assembly Versions: 1.0.5000.0, 2.0.0.0, 4.0.0.0