You have seen how modifiers like
abstract can be applied to classes, interfaces, and other types to change how they behave. The .NET attribute feature allows you to create and apply your own modifiers without having to add keywords to the C# language.
In this chapter, I'll show you two of the many dozens of attributes that are included in the .NET Framework Class Library, how to test for the presence of an attribute, and how to create and apply custom attributes. Table 17-1 provides the summary for this chapter.