.NET Type MetaData and Assembly Manifests – ildasm.exe and Roeders Reflector

Each .NET assembly contains full metadata which describes every type (class, struct, enum etc)  and every member of each type (properties, methods, events etc) defined in the binary.
Debug information is storied in the .PDB (“program database”) file next to your executable (or binary for a web app). If you want to be able to debug any project effectively, make sure you have the correct .PDB file deployed along with the binaries.
For more info on .PDB see this link: http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05/11/pdb-files-what-every-developer-must-know.aspx.

This meta data is used by various debugging tools, the clc compiler and also it’s what runs Intellisense.

Assembly Manifests defines all external references from an assembly (so basically what this assembly requires to be loaded) and also the version of the assembly.

You can explore both of the above by loading the ildasm.exe tool from your VS command prompt – and even better you can explore any assembly, and dissasemble back into code using Roeder’s Reflector (which is now maintained by RedGate).

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: