CHAPTER 15 TYPE REFLECTION, LATE BINDING, AND ATTRIBUTE-BASED PROGRAMMING
Source Code The ExtendableApp folder under the Chapter 15 subdirectory contains the
CommonSnappableTypes, CSharpSnapIn, VbSnapIn, and MyExtendableApp projects.
Summary
Reflection is a very interesting aspect of a robust OO environment. In the world of .NET, the keys to
reflection services revolve around the System.Type class and the System.Reflection namespace. As you
have seen, reflection is the process of placing a type under the magnifying glass at runtime to
understand the who, what, where, when, why, and how of a given item.
Late binding is the process of creating a type and invoking its members without prior knowledge of
the specific names of said members. Late binding is often a direct result of dynamic loading, which
allows you to load a .NET assembly into memory programmatically. As shown during this chapter’s
extendable application example, this is a very powerful technique used by tool builders as well as tool
consumers.
This chapter also examined the role of attribute-based programming. When you adorn your types
with attributes, the result is the augmentation of the underlying assembly metadata.
598