Custom attributes add user-defined annotations to the metadata. Custom attributes allow an instance of a type to be stored with any element of the metadata. This mechanism can be used to store application specific information at compile time and access it either at runtime or when another tool reads the metadata. While any user-defined type can be used as an attribute it is expected that most attributes will be instances of types whose parent is System.Attribute. The NGWS runtime predefines some attribute types and uses them to control runtime behavior. Some languages predefine attribute types to represent language features not directly represented in the VOS. Users or other tools are welcome to define and use additional attribute types.
All Attributes inherit (directly or indirectly) from System.Attribute. This common base class gives all Attributes a central point in the hierarchy from which they can inherit. Compilers and other development tools use this information to identify which types are Custom Attributes
Just inheriting from System.Attribute gives an attribute certain default behaviors: Allowed on any element, Inheritable, duplicate instances are not allowed.
Object
Attribute
[Visual Basic] Public Class Attribute [C#] public class Attribute [C++] public __gc class Attribute [JScript] public class Attribute
[To be supplied.]
Namespace: System
Assembly: mscorlib.dll