Chapter 14. Reflection
WHAT'S IN THIS CHAPTER?
Using custom attributes
Inspecting the metadata at runtime using reflection
Building access points from classes that enable reflection
This chapter focuses on custom attributes and reflection. Custom attributes are mechanisms that allow you to associate custom metadata with program elements. This metadata is created at compile time and embedded in an assembly. Reflection is a generic term that describes the ability to inspect and manipulate program elements at runtime. For example, reflection allows you to:
Enumerate the members of a type
Instantiate a new object
Execute the members of an object
Find out information about a type
Find out information about an assembly
Inspect the custom attributes applied to a type
Create and compile a new assembly
This list represents a great deal of functionality and encompasses some of the most powerful and complex capabilities provided by the .NET Framework class library. Although this chapter does not have the space to cover all the capabilities of reflection, it focuses on those elements that you are likely to use most frequently.
To demonstrate custom attributes and reflection, you develop an example based on a company that regularly ships upgrades of its software and wants to have details of these upgrades documented automatically. In the example, you define custom attributes that indicate the date when program elements were last modified, and what changes were made. You then use reflection to develop an ...