.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 ...
随机推荐
- centos-mirrors
http://mirrors.aliyun.com/centos/7.2.1511/os/x86_64/Packages/ http://mirrors.aliyun.com/centos/7.2.1 ...
- 上传文件是常要处理的事情,使用ajaxFileUpload.js处理比较方便,这里的ajaxFileUpload.js文件修改过的,
上传文件是常要处理的事情,使用ajaxFileUpload.js处理比较方便,这里的ajaxFileUpload.js文件修改过的, Html部分 <input type="file& ...
- [Java开发之路](15)注解
1. 简单介绍 注解(也被称为元数据),为我们在代码中加入信息提供了一种形式化的方法. 注解在一定程度上是把元数据与源码文件结合在一起,而不是保存在外部文档中这一大趋势之下所催生的. 它能够提供用来完 ...
- RabbitMQ 服务
RabbitMQ 使用场景一 安装环境 1.下载安装 Erlang 运行时环境 2.下载安装 RabbitMQ Server 应用程序 3.启动 RabbitMQ 服务(默认启动) 4.安装管理平 ...
- [React] Use React Context to Manage Application State Through Routes
We’ll create a Router component that will wrap our application and manage all URL related state. We’ ...
- [NPM] Pipe data from one npm script to another
In an effort to bypass saving temporary build files you can leverage piping and output redirection t ...
- 笔记-Windows10家庭中文版系统下使用Docker
1.docker是使用Linux内核的,在windows系统下需要使用虚拟机来运行docker. 2.Windows版的docker安装要求,(1)64为操作系统,win7或者更高,(2)支持&quo ...
- 开源项目学习之------AG-Admin环境搭建
原文地址: https://blog.csdn.net/u011781521/article/details/79056974 一.框架简介 AG-Admin是基于Spring Cloud微服务化开发 ...
- shell脚本一键安装mysql5.7.x(免安装版)
使用脚本一键安装mysql5.7.x,初始化数据库,启动数据库---- mysql版本:源码mysql5.7.10 linux版本:centos6.5 x86_64 #!/bin/bash GROUP ...
- 10 个免费的 C/C++ 集成开发环境
集成开发环境(IDE)可以给程序员提供很大的帮助.大多数的IDE包含编译器和解释器.例如微软的 Visual Studio 本身内置的编译器和解释就是很好的例子,Eclipse 是另一个很好的例子.鼓 ...