Metadata (metadata): A series of special data tables that describe what is defined in the module and which are used to indicate what the managed module refers to.
The purpose of the meta data:
1. At compile time, the metadata eliminates the need for the header and library files because all information related to the referenced type/member is included in the file with Il (Intermediate language "intermediate language") to implement the type/member. The compiler can read metadata directly from the managed module.
2. Microsoft vs use Meta data to help us write code. Its IntelliSense feature interprets metadata, indicating what methods, properties, events, and fields are provided by a type. If it is a method, it can also indicate what parameters the method requires.
3. The Code validation process for the CLR uses metadata to ensure that code performs only "safe" operations
4. Metadata allows the field of an object to be serialized into a block of memory, sent to another machine, and then deserialized to reconstruct the object state on the remote machine.
5. Metadata allows the garbage collector to track the lifetime of an object. The garbage collector can judge the type of any object, and the disease knows which fields in that object refer to other objects based on the meta data.