Name
Attribute
Synopsis
This is the base class for all
custom attributes. Attributes are the
.NET programmer’s means of inserting additional
metadata into a type’s definition. For example, the
.NET Serialization mechanism uses an attribute to indicate which
fields in a type should not be serialized (see the
System.Reflection.FieldAttributes.NotSerialized
enumeration value). .NET programmers are free to create their own
attributes (called custom attributes, although
from a certain perspective all attributes are inherently custom) by
creating a new type that claims Attribute
as its
base class type.
By themselves, attributes offer no modification to a
type’s behavioral semantics; that is, attributes
don’t modify the type’s methods or
execution in any way. In fact, attribute instances
aren’t even created until they are retrieved out of
the type’s metadata via the Reflection APIs. The
entire purpose of an attribute is to act as a marker inside the
type’s metadata for consumption by some other API,
library, or facility. For example, the Serialization APIs in the .NET
Framework Class Library use the Serializable
attribute to indicate which types are serializable. However, by
themselves, the attributes carry no code to perform the actual act of
serialization. This must be done by passing the instance of the type
into instances of the Serialization classes, in which the attribute
is retrieved and examined, and
“appropriate” action is taken.
Attributes can be attached to any metadata component ...
Get C# in a Nutshell, Second Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.