概要

现在,在.net开发平台计划,其组成编译:IL代码、资源、程序集清单和类型元数据。我们知道,IL代码就是我们编写的代码。资源就是图片文件。xml文件,及其它文件,只有不清楚的是元数据(在这里将程序集清单是元数据),本片博客主要就是说说对于元数据的理解。

元数据是什么?

元数据是什么呢?我们看看百度百科给出的概念,元数据:描写叙述数据的数据,对数据及信息资源的描写叙述性信息,看了这个定义,给我的感觉就是。会的人不用看,不会的人看不懂,从这个定义中我仅仅能说中国语言实在是太博大精深了,反正刚開始我是没有看懂。也是看了大牛们的东西才理解了一些,好了说一下我如今对于元数据的理解。

我们写的程序终于编译程序程序集。元数据就是描写叙述我们这个程序集中都有什么,如:有哪些类,类的訪问级别是什么,等等属性,以及。这个类里面都有什么成员。以及这些成员的类型,訪问级别等等的属性。当然也描写叙述了程序集合程序集之间的关系,至于为什么要有这些东西,这个就是元数据作用的内容了。

元数据的作用

上面我们知道了元数据是什么,这个模块。我们说的是,元数据的作用。要想知道元数据的作用。我们就须要知道。为什么了有了它,我们都知道,一个新东西的出现,而且能高速的成功崛起的条件是,它攻克了当时存在的不好的现象。那么,那个不好的现象是什么呢?

在微软没有推出元数据技术的时候,出现的一个问题是,二进制代码复用的非常的麻烦。当时的二进制的复用是通过com技术实现的,即。我们编写一个com组件,然后编译好的内容给别人使用。别人不能非常好的使用。为什么呢?由于别人再调用你的com组件的内容时。是硬编码,硬编码就是没有没有智能提示,调用的方法不知道是不是com组件中的方法,不知道写错了没有,要想知道必须执行才干知道。而我们知道com组件内部的方法是通过com操作手冊知道的,可想当时是多么的不便。

对于com技术的出现,也是很的厉害的,为什么说他厉害呢?由于在它之前,我们差点儿不能编写一个让我们放心的库,为什么这么说呢?由于在com出现之前。我们的程序仅仅能直接调用源代码,假设我们写一个库的话,要想让别人用。那么就必须给人家你的源代码,然后。人家编完程序后,统一生成编译生成一下。你想,你写的东西。还没怎么着就把源代码全给了人家,那么人家就相当于拥有了所有。

上面说的是元数据产生的一个整个过程。其主要作用就是解决二进制代码的复用。

元数据的使用

上面说的那些东西,相信大家知道了,元数据能够被VS集成开发环境直接使用。并且是很的普遍,如:我们加入一个程序集的引用。就能够直接很方便的使用,其根本就是使用了程序集元数据的缘故,那么,元数据仅此而已吗?当然不是,事实上元数据也是能够被我们编程人员使用,其使用的一种方式就是反射,反射的技术就是使用元数据达到的,我们通过反射的技术。能够获得程序集的信息,能够获得类的信息和类内部的信息。能够创建一个对象。能够调用方法等等。

除了系统帮助我们生成一些元数据外,我们在编程的时候,也能够自己给类,给方法,属性等等加入一些元数据,这就是特性的产生,特性是更高层次上的抽象。

总结

.net的元数据不是其原产的,而是借鉴的java的。.net和java之间非常多东西都是项目借鉴的。元数据不是.net超额负担,但.net向更高层次的教练。

版权声明:本文博客原创文章。博客,未经同意,不得转载。

.net元数据的更多相关文章

  1. clr 元数据

    clr相关编译器编译生成的托管模块由四部分组成:PE32或32+头.clr头.元数据.IL代码. 元数据和IL代码完全对应,保持一致(:>)性. 元数据有很多用途: VS的智能感知,自动补全: ...

  2. 运用Mono.Cecil 反射读取.NET程序集元数据

    CLR自带的反射机智和API可以很轻松的读取.NET程序集信息,但是不能对程序集进行修改.CLR提供的是只读的API,但是开源项目Mono.Cecil不仅仅可以读取.NET程序集的元数据,还可以进行修 ...

  3. ASP.NET MVC Model元数据(五)

    ASP.NET MVC Model元数据(五) 前言 在上一篇中我们描述了应用于Model上面的各种用于显示控制的特性类,在本篇中将详细的介绍这些特性类的应用,虽然它们跟Model元数据的直接关系并不 ...

  4. ASP.NET MVC Model元数据(四)

    ASP.NET MVC Model元数据(四) 前言 前面的篇幅讲解了Model元数据生成的过程,并没有对Model元数据生成过程的内部和Model元数据结构的详细解释.看完本篇后将会对Model元数 ...

  5. ASP.NET MVC Model元数据(三)

    ASP.NET MVC Model元数据(三) 前言 在上篇中我们大概的讲解了Model元数据的生成过程,并没有对Model元数据本身和详细的生成过程有所描述,本篇将会对详细的生成过程进行讲解,并且会 ...

  6. ASP.NET MVC Model元数据(二)

    ASP.NET MVC Model元数据(二) 前言 在上篇中,给大家留个对Model元数据的印象,并没有对Model元数据有过多的讲解,而在本篇中也不会对Model元数据的本身来解释,而是针对于它的 ...

  7. ASP.NET MVC Model元数据(一)

    ASP.NET MVC Model元数据(一) 前言 在我初学的时候对Model元数据的概念很模糊,或者说是在大脑中没有它的一个模型,作为小白的我去看网上的一些文章还是两眼一黑啥都看不明白,然后我想退 ...

  8. Oracle数据库验证IMP导入元数据是否会覆盖历史表数据

    场景:imp导入数据时,最终触发器报错退出,并未导入存储过程.触发器.函数. 现在exp单独导出元数据,然后imp导入元数据,验证是否会影响已导入的表数据. 测试环境:CentOS 6.7 + Ora ...

  9. JDBC_part3_批处理_事务_元数据

    本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! JDBC_day03 String a = " ...

  10. Django模型类Meta元数据详解

    转自:https://my.oschina.net/liuyuantao/blog/751337 简介 使用内部的class Meta 定义模型的元数据,例如: from django.db impo ...

随机推荐

  1. Linux 下查看线程信息

    1. 使用 pstree -p PID ps aux | grep firefox | grep -v grepcharles  26058  0.0  0.0   4908  1152 ?      ...

  2. signature.html

    原文网址:http://www.youdzone.com/signature.html   阮一峰:http://www.ruanyifeng.com/blog/2011/08/what_is_a_d ...

  3. egreat a5 遥控器 AK82无线遥控器

    [爆炸性消息]购买亿格瑞 A5 送 AK82 遥控器!! [复制链接] http://bbs.egreatworld.com/forum.php?mod=viewthread&tid=315 ...

  4. php汉字字符串长度和截取

    mb_strlen("你好123",'utf-8');//返回5 strlen("你好");//返回几我也不知道,肯定不是2,但你想要2就用上面的 substr ...

  5. [Compose] Isomorphisms and round trip data transformations

    What is Isomorphisms?We have a value x, then apply function 'to' and 'from' to value 'x', the result ...

  6. 学汇编的时候可以拿IDA之类的反汇编工具辅助学习,再用gdb或者IDA动态调试,跟踪每条指令的 执行结果。都不难

    作者:潘安仁链接:https://www.zhihu.com/question/40720890/answer/87926792来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  7. .net core——Docker化开发和部署

    原文:.net core--Docker化开发和部署 本篇文章是使用Vs2017生成的Dockerfile进行部署的. 目录 VS2017生成Docker部署项目 Dockerfile内容 在开发服务 ...

  8. 小强的HTML5移动开发之路(30)—— JavaScript回顾5

    一.查找 第一种方式:依据id查找 var obj = document.getElementById(id);   //document是HTMLDocument的实例 <html> & ...

  9. 双机热备的Quartz集群

    sqlserver搭建高可用双机热备的Quartz集群部署[附源码]   一般拿Timer和Quartz相比较的,简直就是对Quartz的侮辱,两者的功能根本就不在一个层级上,如本篇介绍的Quartz ...

  10. HDU 1422 重温世界杯 - 贪心

    传送门 题目大意: 给一串数,又正有负,求每一个前缀都大于0的最长子串长度. 题目分析: 直接贪心:每次左端点向右推1,不断延伸右端点,更新答案. code #include<bits/stdc ...