Any assembly is heavily scrutinized before any contained code makes it to execution. Not only must assemblies have the necessary permissions to access resources, they must also pass a set of rigorous checks to successfully run. One set of these checks is referred to as validation. Validation encompasses three major sets of tests:
PE file format validation
These checks ensure that IL verification can be carried out successfully and, ultimately, assemblies can be run within strictly enforced security constrains. All sets of tests introduced in this chapter, including PE file format validation checks, need to be met for an assembly to run in a safe manner on the Common Language ...