The name of an attribute specifies an attribute class. The name of an attribute class that corresponds to an attribute identifier is either the identifier itself or the concatenation of the qualified identifier and "Attribute". When resolving an attribute identifier, the identifier will first be looked up as-is. If that lookup fails, then "Attribute" will be appended and the lookup tried again. Thus, an attribute specified as System.Attr
can have either a corresponding attribute class of System.Attr
or System.AttrAttribute
.