元数据就是你引用别人的项目或是系统自带的DLL文件之后,里面的相关数据,方法。比如你用三层架构的时候,BLL层引用了DAL层的DLL文件,可以调用DLL层的相关方法等等,但你在BLL层对调用的DAL层的方法进行“转到定义”的时候就会是元数据,你只能看到他的方法名 参数 具体的实现代码你是看不到的 只有在DAL层才能看到被调用的方法的实现代码。
所谓“从元数据”实是指由微软所封装的类..这些类你可以查看.但是无法修改..
例如你看String类的定义.就是从元数据.因为是MS写的..只能看..不能改。
在VS2005开发时经常能看到源代码显示为“元数据库”,其实就是就是编译好的dll里面的类,
这些DLL文件是微软所封装的类,这些类你可以查看.但是无法修改。
当然也可以自己编写生成,不一定是微软的。
自己写的类照样有元数据
在.NET SDK中用ILDasm.exe打开一个.NET下编译的.dll或.exe文件一看就知道了
打开一个.dll/.exe文件后Ctrl+M,就能看到类似下面的内容。
可以认为这些就是元数据
===========================================================
ScopeName : ShowIsInterned.exe
MVID : {E620161C-E21F-4121-98EE-81236ACD8116}
===========================================================
Global functions
-------------------------------------------------------
Global fields
-------------------------------------------------------
Global MemberRefs
-------------------------------------------------------
TypeDef #1 (02000002)
-------------------------------------------------------
TypDefName: MyDotNetFramework.ShowIsInterned (02000002)
Flags : [NotPublic] [AutoLayout] [Class] [AnsiClass] [BeforeFieldInit] (00100000)
Extends : 01000001 [TypeRef] System.Object
Method #1 (06000001) [ENTRYPOINT]
-------------------------------------------------------
MethodName: Main (06000001)
Flags : [Private] [Static] [HideBySig] [ReuseSlot] (00000091)
RVA : 0x00002050
ImplFlags : [IL] [Managed] (00000000)
CallCnvntn: [DEFAULT]
ReturnType: Void
No arguments.
ImplFlags : [IL] [Managed] (00000000)