O'Reilly Book Excerpts: Programming C#
Programming C#: Attributes and Reflection
This excerpt is Chapter 18 from Programming C#, published in July 2001 by O'Reilly.
Throughout this book, I have emphasized that a .NET application contains code, data, and metadata. Metadata is information about the data -- that is, information about the types, code, assembly, and so forth -- that is stored along with your program. This chapter will explore how some of that metadata is created and used.
Attributes are a mechanism for adding metadata, such as compiler instructions and other data about your data, methods, and classes, to the program itself. Attributes are inserted into the metadata and are visible through
ILDasm and other metadata-reading tools.
Reflection is the process by which a program can read its own metadata. A program is said to reflect on itself, extracting metadata from its assembly and using that metadata either to inform the user or to modify its own behavior.