When a C# application references another assembly, it has access to that assembly’s metadata.
One way to examine metadata for a type is to open the assembly using the IL Disassembler tool. But you can also view the metadata directly in Visual Studio, using the Go To Definition command on anything not implemented in the current assembly. The metadata will appear in a new code window, in the form of C# source code.
Suppose you have some code that creates a string object and calls its Replace method. You can right-click on theReplace method in your code and select Go To Definition.
A new code window will open, showing all of the declarations for the string type, without their implementation. The cursor will be positioned on the Replace method. The title of the tab lists the class (“String”) and an indication that this was generated from metadata.