Metadata and the ability to inspect metadata using Reflection were the topics of this chapter. .NET assemblies consist of metadata and MSIL, in which understanding MSIL is equally important to a developer. (MSIL is the topic of Chapter 11.) Understanding MSIL is important for writing, maintaining, and, later, debugging a C# application. Reflection can be used with MSIL code. You can inspect MSIL code at run time, create self-generating code, and otherwise manipulate MSIL using Reflection.