I’m learning .NET framework and been reading through Metadata and Manifest.
“Metadata is data about data and Manifest is data about assembly!!”
Q: So isn’t Manifest a metadata?
Then what are its differences?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
Manifest maintains the information about the assemblies
like version, name locale and an optional strong name that
uniquely identifying the assembly. This manifest
information is used by the CLR. The manifest also contains
the security demands to verify this assembly. It also
contains the names and hashes of all the files that make up
the assembly. The .NET assembly manifest contains a
cryptographic hash of different modules in the assembly.
And when the assembly is loaded, the CLR recalculates the
hash of the modules at hand, and compares it with the
embedded hash. If the hash generated at runtime is different
from that found in the manifest, .NET refuses to load the
assembly and throws an exception.
Metadata means data about the data. Metadata yields the
types available in that assembly, viz. classes, interfaces,
enums, structs, etc., and their containing namespaces, the
name of each type, its visibility/scope, its base class,
the interfaces it implemented, its methods and their scope,
and each method’s parameters, type’s properties, and so on.
The assembly metadata is generated by the high-level
compilers automatically from the source files. The compiler
embeds the metadata in the target output file, a dll,
an .exe or a .netmodule in the case of multi-module
assembly.