Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer

Attributes (C# Programming Guide)

Updated: July 2008

Attributes provide a powerful method of associating declarative information with C# code (types, methods, properties, and so forth). After an attribute is associated with a program entity, the attribute can be queried at run time by using a technique called reflection. For more information, see Reflection (C# Programming Guide).

Attributes occur in two forms:

  • Attributes that are defined in the common language runtime (CLR).

  • Custom attributes that you can create, to add extra information to your code. This information can later be retrieved programmatically.

In this example, the TypeAttributes.Serializable attribute is used to apply a specific characteristic to a class:

public class SampleClass
    // Objects of this type can be serialized.

Attributes have the following properties:

For more information, see the following sections in the C# Language Specification:

  • 10.2.1 Attributes

  • 17 Attributes




July 2008

Updated overview section.

Content bug fix.

© 2015 Microsoft