首页 > 代码库 > .net元数据
.net元数据
概述
现在在.net平台开发出来的程序,其编译后的组成为:IL代码、资源、程序集清单和类型元数据。我们知道,IL代码就是我们编写的代码,资源就是图片文件,xml文件,及其他文件,唯独不清楚的是元数据(在这里将程序集清单是元数据),本片博客主要就是说说对于元数据的理解。
元数据是什么?
元数据是什么呢?我们看看百度百科给出的概念,元数据:描述数据的数据,对数据及信息资源的描述性信息,看了这个定义,给我的感觉就是,会的人不用看,不会的人看不懂,从这个定义中我只能说中国语言实在是太博大精深了,反正刚开始我是没有看懂,也是看了大牛们的东西才理解了一些,好了说一下我现在对于元数据的理解。
我们写的程序最终编译程序程序集,元数据就是描述我们这个程序集中都有什么,如:有哪些类,类的访问级别是什么,等等属性,以及,这个类里面都有什么成员,以及这些成员的类型,访问级别等等的属性。当然也描述了程序集合程序集之间的关系,至于为什么要有这些东西,这个就是元数据作用的内容了。
元数据的作用
上面我们知道了元数据是什么,这个模块,我们说的是,元数据的作用,要想知道元数据的作用,我们就需要知道,为什么了有了它,我们都知道,一个新东西的出现,并且能快速的成功崛起的条件是,它解决了当时存在的不好的现象,那么,那个不好的现象是什么呢?
在微软没有推出元数据技术的时候,出现的一个问题是,二进制代码复用的非常的麻烦,当时的二进制的复用是通过com技术实现的,即,我们编写一个com组件,然后编译好的内容给别人使用,别人不能很好的使用,为什么呢?因为别人再调用你的com组件的内容时,是硬编码,硬编码就是没有没有智能提示,调用的方法不知道是不是com组件中的方法,不知道写错了没有,要想知道必须运行才能知道,而我们知道com组件内部的方法是通过com操作手册知道的,可想当时是多么的不便。
对于com技术的出现,也是非常的厉害的,为什么说他厉害呢?因为在它之前,我们几乎不能编写一个让我们放心的库,为什么这么说呢?因为在com出现之前,我们的程序只能直接调用源码,如果我们写一个库的话,要想让别人用,那么就必须给人家你的源码,然后,人家编完程序后,统一生成编译生成一下,你想,你写的东西,还没怎么着就把源码全给了人家,那么人家就相当于拥有了全部。
上面说的是元数据产生的一个整个过程,其主要作用就是解决二进制代码的复用。
元数据的使用
上面说的那些东西,相信大家知道了,元数据可以被VS集成开发环境直接使用,而且是非常的普遍,如:我们添加一个程序集的引用,就可以直接非常方便的使用,其根本就是使用了程序集元数据的缘故,那么,元数据仅此而已吗?当然不是,其实元数据也是可以被我们编程人员使用,其使用的一种方式就是反射,反射的技术就是使用元数据达到的,我们通过反射的技术,可以获得程序集的信息,可以获得类的信息和类内部的信息,可以创建一个对象,可以调用方法等等。
除了系统帮助我们生成一些元数据外,我们在编程的时候,也可以自己给类,给方法,属性等等添加一些元数据,这就是特性的产生,特性是更高层次上的抽象。
总结
.net的元数据不是其原产的,而是借鉴的java的,.net和java之间很多东西都是项目借鉴的;元数据不是.net多余的负担,而是把.net推向更高层次的主帅。
.net元数据