Chapter 11: Reflection and Dynamic Programming
In the previous chapter, we looked at functional programming, lambda expressions, and the features they enable, such as Language Integrated Query (LINQ). This chapter is focused on reflection services and dynamic programming. You will learn what reflection is and how you can get information about types at runtime, as well as how code and resources are stored in assemblies and how these can be loaded dynamically at runtime both for reflection and code execution.
This is key for building applications that support extension in the form of add-ons or plugins. We will see what attributes are and what role they play in reflection. Another important topic that we will address in this chapter is dynamic programming and the Dynamic Language Runtime that enables dynamic languages to run on the Common Language Runtime (CLR) and to add dynamic features to statically typed languages.
The topics we will address in this chapter are the following...