.net元数据
概要
现在,在.net开发平台计划,其组成编译:IL代码、资源、程序集清单和类型元数据。我们知道,IL代码就是我们编写的代码。资源就是图片文件。xml文件,及其它文件,只有不清楚的是元数据(在这里将程序集清单是元数据),本片博客主要就是说说对于元数据的理解。
元数据是什么?
元数据是什么呢?我们看看百度百科给出的概念,元数据:描写叙述数据的数据,对数据及信息资源的描写叙述性信息,看了这个定义,给我的感觉就是。会的人不用看,不会的人看不懂,从这个定义中我仅仅能说中国语言实在是太博大精深了,反正刚開始我是没有看懂。也是看了大牛们的东西才理解了一些,好了说一下我如今对于元数据的理解。
我们写的程序终于编译程序程序集。元数据就是描写叙述我们这个程序集中都有什么,如:有哪些类,类的訪问级别是什么,等等属性,以及。这个类里面都有什么成员。以及这些成员的类型,訪问级别等等的属性。当然也描写叙述了程序集合程序集之间的关系,至于为什么要有这些东西,这个就是元数据作用的内容了。
元数据的作用
上面我们知道了元数据是什么,这个模块。我们说的是,元数据的作用。要想知道元数据的作用。我们就须要知道。为什么了有了它,我们都知道,一个新东西的出现,而且能高速的成功崛起的条件是,它攻克了当时存在的不好的现象。那么,那个不好的现象是什么呢?
在微软没有推出元数据技术的时候,出现的一个问题是,二进制代码复用的非常的麻烦。当时的二进制的复用是通过com技术实现的,即。我们编写一个com组件,然后编译好的内容给别人使用。别人不能非常好的使用。为什么呢?由于别人再调用你的com组件的内容时。是硬编码,硬编码就是没有没有智能提示,调用的方法不知道是不是com组件中的方法,不知道写错了没有,要想知道必须执行才干知道。而我们知道com组件内部的方法是通过com操作手冊知道的,可想当时是多么的不便。
对于com技术的出现,也是很的厉害的,为什么说他厉害呢?由于在它之前,我们差点儿不能编写一个让我们放心的库,为什么这么说呢?由于在com出现之前。我们的程序仅仅能直接调用源代码,假设我们写一个库的话,要想让别人用。那么就必须给人家你的源代码,然后。人家编完程序后,统一生成编译生成一下。你想,你写的东西。还没怎么着就把源代码全给了人家,那么人家就相当于拥有了所有。
上面说的是元数据产生的一个整个过程。其主要作用就是解决二进制代码的复用。
元数据的使用
上面说的那些东西,相信大家知道了,元数据能够被VS集成开发环境直接使用。并且是很的普遍,如:我们加入一个程序集的引用。就能够直接很方便的使用,其根本就是使用了程序集元数据的缘故,那么,元数据仅此而已吗?当然不是,事实上元数据也是能够被我们编程人员使用,其使用的一种方式就是反射,反射的技术就是使用元数据达到的,我们通过反射的技术。能够获得程序集的信息,能够获得类的信息和类内部的信息。能够创建一个对象。能够调用方法等等。
除了系统帮助我们生成一些元数据外,我们在编程的时候,也能够自己给类,给方法,属性等等加入一些元数据,这就是特性的产生,特性是更高层次上的抽象。
总结
.net的元数据不是其原产的,而是借鉴的java的。.net和java之间非常多东西都是项目借鉴的。元数据不是.net超额负担,但.net向更高层次的教练。
版权声明:本文博客原创文章。博客,未经同意,不得转载。
.net元数据的更多相关文章
- clr 元数据
clr相关编译器编译生成的托管模块由四部分组成:PE32或32+头.clr头.元数据.IL代码. 元数据和IL代码完全对应,保持一致(:>)性. 元数据有很多用途: VS的智能感知,自动补全: ...
- 运用Mono.Cecil 反射读取.NET程序集元数据
CLR自带的反射机智和API可以很轻松的读取.NET程序集信息,但是不能对程序集进行修改.CLR提供的是只读的API,但是开源项目Mono.Cecil不仅仅可以读取.NET程序集的元数据,还可以进行修 ...
- ASP.NET MVC Model元数据(五)
ASP.NET MVC Model元数据(五) 前言 在上一篇中我们描述了应用于Model上面的各种用于显示控制的特性类,在本篇中将详细的介绍这些特性类的应用,虽然它们跟Model元数据的直接关系并不 ...
- ASP.NET MVC Model元数据(四)
ASP.NET MVC Model元数据(四) 前言 前面的篇幅讲解了Model元数据生成的过程,并没有对Model元数据生成过程的内部和Model元数据结构的详细解释.看完本篇后将会对Model元数 ...
- ASP.NET MVC Model元数据(三)
ASP.NET MVC Model元数据(三) 前言 在上篇中我们大概的讲解了Model元数据的生成过程,并没有对Model元数据本身和详细的生成过程有所描述,本篇将会对详细的生成过程进行讲解,并且会 ...
- ASP.NET MVC Model元数据(二)
ASP.NET MVC Model元数据(二) 前言 在上篇中,给大家留个对Model元数据的印象,并没有对Model元数据有过多的讲解,而在本篇中也不会对Model元数据的本身来解释,而是针对于它的 ...
- ASP.NET MVC Model元数据(一)
ASP.NET MVC Model元数据(一) 前言 在我初学的时候对Model元数据的概念很模糊,或者说是在大脑中没有它的一个模型,作为小白的我去看网上的一些文章还是两眼一黑啥都看不明白,然后我想退 ...
- Oracle数据库验证IMP导入元数据是否会覆盖历史表数据
场景:imp导入数据时,最终触发器报错退出,并未导入存储过程.触发器.函数. 现在exp单独导出元数据,然后imp导入元数据,验证是否会影响已导入的表数据. 测试环境:CentOS 6.7 + Ora ...
- JDBC_part3_批处理_事务_元数据
本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! JDBC_day03 String a = " ...
- Django模型类Meta元数据详解
转自:https://my.oschina.net/liuyuantao/blog/751337 简介 使用内部的class Meta 定义模型的元数据,例如: from django.db impo ...
随机推荐
- spring里头各种获取ApplicationContext的方法
为啥写这个文章呢?spring各个版本不同,以及和系统框架套在一起不同,导致获取的方式不同,网络上各种版本,太乱了,写获取方式的人都不写这个获取方式是在本地还是在WEB,在那种应用服务器下,在spri ...
- jquery中的this与$(this)的区别总结(this:html元素)($(this):JQuery对象)
jquery中的this与$(this)的区别总结(this:html元素)($(this):JQuery对象) 一.总结 1.this所指的是html 元素,有html的属性,可用 this.属性 ...
- ArcSDE中Compress与Compact的区别
原文 ArcSDE中Compress与Compact的区别 附件一”为两种数据库需要的管理工作. 与所表示的含义与操作是不同的. 对于来说,Compressing与Smart Dat ...
- ArcEngine中最短路径的实现
原文 ArcEngine中最短路径的实现 最短路径分析属于ArcGIS的网络分析范畴.而ArcGIS的网络分析分为两类,分别是基于几何网络和网络数据集的网络分析.它们都可以实现最短路径功能.下面先介绍 ...
- SpringSecurity3.2.5自己定义角色及权限的教程
近期阴差阳错的搞上了SpringSecurity3.由于是自己做的小系统.中间遇到了非常多坑,基本每一个坑都踩过了,网上也查了不少资料,发现有不少错误的.更是让我绕了一圈又一圈,如今把一些主要的东西总 ...
- 恩布900手机客服,安卓版本号Entboost Android 1.0 正式公布
恩布900手机客服,安卓版本号Entboost Android 1.0正式公布,支持一行代码在安卓手机实如今线客服的功能,支持文本.表情,图片,语音和离线消息等. ENTBOOST是跨平台.跨应用的实 ...
- js调用百度地图api
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...
- matlab 机器学习相关函数、api
matlab 对数据集的默认组织方式是,X∈Rd×N d:行数,表示特征向量的长度: N:列数,表示样本的数目: 1. 模型.预测.mse % 加载 matlab 内置数据到内存 X = abalon ...
- 理解Erlang/OTP Supervisor
http://www.cnblogs.com/me-sa/archive/2012/01/10/erlang0030.html Supervisors are used to build an hie ...
- [转]Redis 与Mysql通信
http://blog.csdn.net/hpb21/article/details/7852934 找了点资料看了下.学习心得如下: 1 Mysql更新Redis Mysql更新Redis借鉴mem ...