.NET 元数据
1. 安装 ILDASM 工具
VS -- 外部工具 -- 添加 -- 命令行为:C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\ILDASM.EXE
2. 转两篇比较良心的博客:
http://www.cnblogs.com/anytao/archive/2009/02/24/must_net_24.html
http://www.cnblogs.com/ShaYeBlog/archive/2013/07/20/3202191.html
http://www.cnblogs.com/ShaYeBlog/p/3202218.html
3. 总体的层次结构:
cs文件 - 单个托管模块 - 多个托管模块合并为程序集(带模块/资源描述清单)
结论:
大致说来,托管模块就是一个自描述的文件,将cs文件的“类型、属性、方法”等整理成“元数据表索引+IL中间代码”的模式。
元数据表不仅描述自身定义的类型,还描述引用的类型,通过再上一级的元数据清单,可以检索到目标文件,因此消除了头文件的生命。
平时我们大量用的反射机制,就是对程序集中对应托管模块元数据的读取,从而索引出具体的IL中间代码。
关于JitCompiler:
只有程序在首次运行某个函数时,需要将IL代码编译成本地机器码并修改调用地址之后,再调用就不会有额外的性能开销了。
从底层看反射:
反射必定会涉及大量的字符串匹配,而这通常是比较消耗性能的,能不用反射尽量还是不用为好,额外的元数据容量开销在较小的程序架构中可以忽略,获得比C/C++低20%的性能,还是可以接受的。
从应用层看反射:
System.Reflection 为程序集或模块中包含的元数据创建了对象模型。
.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 ...
随机推荐
- html,shtml和htm的区别
SHTML和HTML的区别,如果用一句话来解释就是:SHTML 不是HTML而是一种服务器 API,shtml是服务器动态产成的html. 虽然两者都是超文本格式,但shtml是一种用于SSI技术的文 ...
- w10 系统升级
怎么把电脑升级到w10系统? 下载一个软件,Windows10Upgrade9252.exe, 5M左右,把windows更新开启后,运行即可! 升级后,请把windows.old 文件夹删除,这个文 ...
- memcached的基本命令(安装、卸载、启动、配置相关)
memcached的基本命令(安装.卸载.启动.配置相关):-p 监听的端口 -l 连接的IP地址, 默认是本机 -d start 启动memcached服务 -d restart 重起memcac ...
- (转载)linux那点事儿(中)
原文地址:http://www.cnblogs.com/fnng/archive/2012/03/19/2407162.html 本文只是转载供自己学习之用 2012-03-22 13:31 by 虫 ...
- xp系统
产品密钥 MRX3F-47B9T-2487J-KWKMF-RPWBY(亲测可用)
- 还在用ListView?
还在用Lisview?RecyclerView都已经出来一年多了! 想必大家多或多或少的接触过或者了解过RecyclerView,为什么没有用起来,原因大概如下? ListView我用的挺好的,为什么 ...
- 2进制,16进制,BCD,ascii,序列化对象相互转换
public final static char[] BToA = "0123456789abcdef".toCharArray() ; 1.16进制字符串转为字节数组 /** * ...
- 关于ajaxfileupload.js一些问题和上传图片就立即显示图片功能
ajaxfileupload.js是上传文件的一个插件,最近碰到的一个问题是在谷歌浏览器上传文件之后,原文本框中的文件名称消失,网上搜了好长时间也没有十分满意的答案.无刷新上传文件我想到的只有ajax ...
- angularjs-googleMap googleMap api地址解析与反解析
1.js:根据地址得到经纬度var myplace=$scope.place;//获取输入的地址var geocoder = new google.maps.Geocoder();//创建geocod ...
- WCF系列学习5天速成
看到一篇比较好的基础wcf学习博客,分享给大家:http://www.cnblogs.com/huangxincheng/archive/2011/10/23/2221845.html