1. What is the CLR
2. Intermediate language
3. Meta-data
Metadata is a binary block of data, consisting of several tables. These tables are divided into three categories: definition tables (definiton talbe), reference tables (reference table), and Manifest tables (mainfest table).
Common metadata Definition tables (when the compiler compiles the source code, anything that is defined by the code causes a record entry to be created in the table in the definition table):
Moduledef always contains a record entry that identifies the module.
Each type defined in the TypeDef module has a corresponding record entry in the definition table.
Each method defined in the MethodDef module has a corresponding record entry in the definition table.
Each field defined in the FieldDef module has a corresponding record entry in the definition table.
Each parameter defined in the ParamDef module has a corresponding record entry in the definition table.
Each property defined in the PropertyDef module has a corresponding record entry in the definition table.
Each event defined in the Eventdef module has a corresponding record entry in the definition table.
Common reference Metadata tables:
Each assembly referenced in the AssemblyRef module has a corresponding record entry in the table
Each type referenced by the ModuleRef module may be implemented by another PE module, and all of those modules have a record entry in the table
Each type referenced by a TYPEDEF module has a corresponding record entry in the table
Each member referenced by the MEMBERREF module has a corresponding record entry in the table
Inventory metadata table:
AssemblyDef If the module identifies an assembly, it contains a single record entry in the metadata table. The record entry lists the assembly name (without the path and extension), the version (Major,minor,build and revision), the language Culture (cultural), some flags, the hashing algorithm, and the publisher's public key.
FileDef each PE file and resource file that is part of the assembly has a corresponding record entry in the table.
Mainifestresourcedef each resource that is part of an assembly has a corresponding record entry in the table
Exportedtypesdef each public type that is exported from all the PE modules in the assembly has a corresponding record entry in the table.
4. Common type systems (Common type System)
5. Common Language Specification (Common Language specifiaction,cls)
. NET Platform Some concepts