一线开发读CLR --- 第三章:共享程序集和强命名程序集

本章内容,并非我现在的工作内容所频繁使用的。特别是共享程序集相关内容,目前和以后都可能用的不多。
其中对“运行时”解析类型引用,知识点重点了解了一下。
 
强命名程序集是为了对程序集进行共享为目的,而提出的。着眼于以后的分布式开发。
 
作者想通过一个 “运行时”解析类型引用 的例子,说明CLR如果通过AssemblyRef这个记录项,获取强命名程序集信息,加载程序集的。
例如: “mscorlib, Version=4.0.0.0 Culture=neutral, PublicKeyToken=b77a5c561943s0d9”
虽然暂时用不着 共享程序集 ,但对于 这个例子描述的方法执行流程,还是应该好好学习学习的。
 

“运行时”解析类型引用

1,CLR加载当前程序,并初始化。
2,CLR读取程序集的CLR头,查找标识了应用程序入口方法(Main)的MethodDefToken.
3,CLR检索MethodDef元数据表,找到该方法的IL代码在文件的偏移量,把IL代码JIT编译成本地(native)代码,此过程中将保证类型是安全的。
      3.1 CLR检查对类型和成员的所有引用,并加载定义了它们的程序集。
      3.2 根据元数据的token键名,查询其在MemberRef元数据表中的记录项。
      3.3 如果记录项目中存在字段引用一个TypeRef表中的记录项。根据其记录项可以查询到强命名程序集名。即可加载相关程序集。
 
4,执行本地代码。

转载于:https://www.cnblogs.com/fync/archive/2013/03/03/2941492.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值