.NET assemblies adhere to the Portable Executable Common Object File Format (PE COFF). PE COFF files have headers and sections, such as a PE and CLR Header. .NET assemblies consist of metadata and MSIL code. Metadata describes the types and other characteristics of the assembly. You can inspect the metadata of an assembly using reflection. Tools, such as ILDASM, browse an assembly using reflection. Reflection also provides support for late binding. The next chapter explores metadata and reflection.