概要

现在,在.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. 菜单之二:使用xml文件定义菜单 分类: H1_ANDROID 2013-11-03 09:39 1038人阅读 评论(0) 收藏

    参考<疯狂android讲义>2.10节 P174,参见归档project:XmlMenuDemo.zip 一般推荐使用XML文件定义菜单. 基本步骤如下: 1.定义布局文件 为简单显示原 ...

  2. 设置UIButton的文字显示位置、字体的大小、字体的颜色

    btn.frame = CGRectMake(x, y, width, height); [btn setTitle: @"search" forState: UIControlS ...

  3. phpStorm怎么解决502 bad gateway(总结整理)

    phpStorm怎么解决502 bad gateway(总结整理) 一.总结 1.配置 php解释器. 二.phpStorm解释器与服务器配置(解决502 bad gateway与404 not fo ...

  4. Android ReentrantLock

    synchronized原语和ReentrantLock在一般情况下没有什么区别,但是在非常复杂的同步应用中,请考虑使用ReentrantLock,特别是遇到下面2种需求的时候. 1.某个线程在等待一 ...

  5. 编辑框等控件边框美化(继承CEdit,然后覆盖OnMouseLeave, OnSetFocus, OnPaint函数即可。原来的CEdit虽然代码不可见,但它也是有句柄的,照样随便画)

    源码说明:美化能获取焦点控件的边框颜色,获取焦点后颜色不同(类似彗星小助手.QQ等软件),支持自定义颜色,支持单独设置各个控件颜色.实现方法:子类化,在WM_NCPAINT.WM_PAINT等消息自己 ...

  6. UIlabel文字大小自适应label宽度变大变小

    label.adjustsFontSizeToFitWidth = YES;   //默认no

  7. PHP基本的文件和文件夹操作常用的汇总

    资源:http://www.ido321.com/835.html 一.基本文件的操作 文件的基本操作有:文件推断.文件夹推断.文件大小.读写性推断.存在性推断及文件时间等 1: <?php 2 ...

  8. Cordova-Android-Android target:not installed

    原文:Cordova-Android-Android target:not installed 运行cordova requirements检查是否具备使用 Cordova 开发/运行 Android ...

  9. 5.1 入门整合案例(SpringBoot+Spring-data-elasticsearch) ---- good

    本节讲解SpringBoot与Spring-data-elasticsearch整合的入门案例. 一.环境搭建 新建maven项目,名字随意 pom.xml <parent> <gr ...

  10. JTextpane 加入的行号

    最近项目需求,在需求JTextPane加入行号等信息,网上找了半天才发现JTextArea加入行号信息.copy正在研究在线程序.他发现自己能够做出改变来改变JTextPane显示行号. 代码: pa ...