What is a Metadata?
Metadata is information about a PE. In COM, metadata is communicated by non-standardized type libraries. In .NET, this data is contained in the header portion of a COFF-compliant PE and follows certain guidelines; it have information such as the assembly's name, version, language (spoken, not computer-a.k.a., "culture"), what external types are referenced, what internal types are exposed, methods, properties, classes, and much more. The CLR uses metadata for a number of particular purposes. Security is managed by a public key in the PE's header. Information about classes, modules, and so forth permits the CLR to know in advance what structures are essential.