This chapter provided an overview of reflection and code attributes and how they work together to provide extremely powerful functionality. The chapter started off with a discussion of what reflection is, how it works, and how it is an embedded, core part of the Common Language Runtime. Following that, the chapter went into a discussion of code attributes. Finally, you saw an example of how to create your own custom attributes and how to use reflection to query the values within that custom attribute.
After having read this chapter and followed along with the samples contained within it, you should have a more thorough understanding of both reflection and code attributes.