System.AttributeUsageAttribute Class

Assembly: Mscorlib.dll
Namespace: System
Summary
Specifies the usage of another attribute class. This class cannot be inherited.
C# Syntax:
[AttributeUsage(AttributeTargets.Class)]
[Serializable]
public sealed class AttributeUsageAttribute : Attribute
Remarks
When you are defining your own attribute class, you can control the manner in which it is used by placing an AttributeUsageAttribute on your attribute class. The indicated attribute class must derive from Attribute, either directly or indirectly.

Attribute classes have positional and named parameters. Each public constructor for an attribute class defines a valid sequence of positional parameters for that class. Named parameters are defined by the non-static, public, and read-write fields or properties of the attribute class.

The three properties of AttributeUsageAttribute are set by defining the following parameters:

This positional parameter specifies the program elements that the indicated attribute can be placed on. The set of all possible elements that you can place an attribute on is listed in the AttributeTargets enumerator. You can combine several AttributeTargets values using a bitwise OR operation to get the desired combination of valid program elements.

This named parameter specifies whether the indicated attribute can be specified more than once for a given program element.

This named parameter specifies whether the indicated attribute can be inherited by derived classes and overridden members.

For more information about using attributes, see Attribute and the conceptual topic at MSDN: extendingmetadatausingattributes.

See also:
System Namespace | Attribute | AttributeTargets | MSDN: extendingmetadatausingattributes

System.AttributeUsageAttribute Member List:

Public Constructors
ctor #1 Initializes a new instance of the AttributeUsageAttribute class with the specified list of AttributeTargets, the AttributeUsageAttribute.AllowMultiple value, and the AttributeUsageAttribute.Inherited value.
Public Properties
AllowMultiple Read-write

Gets or sets a Boolean value indicating whether more than one instances of the indicated attribute can be specified for a single program element.
Inherited Read-write

Gets or sets a Boolean value indicating whether the indicated attribute is inherited by derived classes or overridden members.
TypeId
(inherited from System.Attribute)
Read-only

See base class member description: System.Attribute.TypeId


When implemented in a derived class, gets a unique identifier for this Attribute.
ValidOn Read-only

Gets a set of values identifying which program elements that the indicated attribute can be applied to.
Public Methods
Equals
(inherited from System.Object)
See base class member description: System.Object.Equals

Derived from System.Object, the primary base class for all objects.
GetHashCode
(inherited from System.Attribute)
See base class member description: System.Attribute.GetHashCode


Returns the hash code for this instance.
GetType
(inherited from System.Object)
See base class member description: System.Object.GetType

Derived from System.Object, the primary base class for all objects.
IsDefaultAttribute
(inherited from System.Attribute)
See base class member description: System.Attribute.IsDefaultAttribute


When overridden in a derived class, returns an indication whether the value of this instance is the default value for the derived class.
Match
(inherited from System.Attribute)
See base class member description: System.Attribute.Match


When overridden in a derived class, returns a value indicating whether this instance equals a specified object.
ToString
(inherited from System.Object)
See base class member description: System.Object.ToString

Derived from System.Object, the primary base class for all objects.
Protected Methods
Finalize
(inherited from System.Object)
See base class member description: System.Object.Finalize

Derived from System.Object, the primary base class for all objects.
MemberwiseClone
(inherited from System.Object)
See base class member description: System.Object.MemberwiseClone

Derived from System.Object, the primary base class for all objects.

Hierarchy:


System.AttributeUsageAttribute Member Details

ctor #1
Summary
Initializes a new instance of the AttributeUsageAttribute class with the specified list of AttributeTargets, the AttributeUsageAttribute.AllowMultiple value, and the AttributeUsageAttribute.Inherited value.
C# Syntax:
public AttributeUsageAttribute(
   AttributeTargets validOn
);
Parameters:

validOn

The set of values combined using a bitwise OR operation to indicate which program elements are valid.

Remarks
You can combine several AttributeTargets values using a bitwise OR operation to get the desired combination of valid program elements.

For default property values, see the AttributeUsageAttribute.ValidOn, AttributeUsageAttribute.AllowMultiple, and AttributeUsageAttribute.Inherited properties.

Example
The definition of the DispId attribute illustrates the use of a bitwise OR operation to combine several AttributeTargets values.
namespace System.Runtime.InteropServices
{
   [AttributeUsage(AttributeTargets.Method | AttributeTargets.Field |
    AttributeTargets.Property)]
   public class DispIdAttribute: System.Attribute
   {
      public DispIdAttribute(int value) {
        // . . .
      }
      
      public int Value {
         get {
            // . . .
            return 0;
         }
      }
   }
}

    
See also:
AttributeTargets

Return to top


Property: AllowMultiple (read-write)
Summary
Gets or sets a Boolean value indicating whether more than one instances of the indicated attribute can be specified for a single program element.
C# Syntax:
public bool AllowMultiple {get; set;}
Remarks
An attribute that can be specified more than once for a program element is called a multi-use attribute. An attribute that can be specified only once is called a single-use attribute.
See also:
Attribute

Return to top


Property: Inherited (read-write)
Summary
Gets or sets a Boolean value indicating whether the indicated attribute is inherited by derived classes or overridden members.
C# Syntax:
public bool Inherited {get; set;}
See also:
Attribute

Return to top


Property: TypeId (read-only)
Inherited
See base class member description: System.Attribute.TypeId

Summary
When implemented in a derived class, gets a unique identifier for this Attribute.
C# Syntax:
public virtual object TypeId {get;}
Remarks
As implemented, this identifier is merely the Type of the attribute. However, it is intended that the unique identifier be used to identify two attributes of the same type.

Return to top


Property: ValidOn (read-only)
Summary
Gets a set of values identifying which program elements that the indicated attribute can be applied to.
C# Syntax:
public AttributeTargets ValidOn {get;}
See also:
AttributeTargets

Return to top


Method: Equals(
   object obj
)
Inherited
See base class member description: System.Object.Equals
C# Syntax:
public virtual bool Equals(
   object obj
);

For more information on members inherited from System.Object click on the link above.

Return to top


Method: Finalize()
Inherited
See base class member description: System.Object.Finalize
C# Syntax:
~AttributeUsageAttribute();

For more information on members inherited from System.Object click on the link above.

Return to top


Method: GetHashCode()
Inherited
See base class member description: System.Attribute.GetHashCode

Summary
Returns the hash code for this instance.
C# Syntax:
public override int GetHashCode();
Return Value:
A 32-bit signed integer hash code.

Return to top


Method: GetType()
Inherited
See base class member description: System.Object.GetType
C# Syntax:
public Type GetType();

For more information on members inherited from System.Object click on the link above.

Return to top


Method: IsDefaultAttribute()
Inherited
See base class member description: System.Attribute.IsDefaultAttribute

Summary
When overridden in a derived class, returns an indication whether the value of this instance is the default value for the derived class.
C# Syntax:
public virtual bool IsDefaultAttribute();
Return Value:
true if this instance is the default attribute for the class; otherwise, false.
Remarks
The default implementation of this class returns false, and must be implemented in the derived class to be useful to that class.

The implementation of this method in a derived class compares the value of this instance to a standard, default value obtained by some means, then returns a Boolean value that indicates whether the value of this instance is equal to the standard. The standard value is typically coded as a constant in the implementation, or stored programmatically in a field used by the implementation.

Return to top


Method: Match(
   object obj
)
Inherited
See base class member description: System.Attribute.Match

Summary
When overridden in a derived class, returns a value indicating whether this instance equals a specified object.
C# Syntax:
public virtual bool Match(
   object obj
);
Parameters:

obj

An Object to compare with this instance of Attribute.

Return Value:
true if this instance equals obj; otherwise, false.
Remarks
This method determines if one Attribute equals another. Its default implementation is the same as Attribute.Equals, which performs a value and reference comparison. Override this method to implement support for attribute values, such as flags or bitfields, that consist of components that are meaningful in themselves. For example, consider an attribute whose value is a binary field divided into a bitfield of flags. Two instances of this attribute have one flag in set in common while all the other flags differ. The Equal method cannot determine that the two instances have the same flag set, but the Match method can.

Return to top


Method: MemberwiseClone()
Inherited
See base class member description: System.Object.MemberwiseClone
C# Syntax:
protected object MemberwiseClone();

For more information on members inherited from System.Object click on the link above.

Return to top


Method: ToString()
Inherited
See base class member description: System.Object.ToString
C# Syntax:
public virtual string ToString();

For more information on members inherited from System.Object click on the link above.

Return to top


Top of page

Copyright (c) 2002 Microsoft Corporation. All rights reserved.