CLR程序集教程新手上路
创始人
2024-06-09 09:40:57
0

我们都知道CLR是公共语言运行库,我一直对CLR都很感兴趣,喜欢在网上收集一些有关CLR方面的内容,想加深对CRL的理解。在这里给刚接触的朋友拿来看看,希望对你们有帮助。

一、CLR程序集教程之体系结构

程序集是一个抽象的概念,程序集是一个或多个托管模块、资源文件和描述程序构成程序集文件的“清单”的逻辑性分组。从上面对程序集的定义的概念可知程序集主要有两部分组成:托管模块,资源文件。下面我们一一介绍。

1、托管模块

托管模块是一个标准的32们的Microsoft Windows 可移植体(PE32)文件,或是一个标准的64们Windows可移值执行体(PE32+)文件。组成托管模块的各个部分:PE32(32位版本上)或PE32+(64位版本上)、CLR头、元数据、中间语言(Microsoft Intermediate Laguage,MSIL)代码。注意的事CLR(Common Language Runtime,CLR)不能直接处理托管模块。
A、PE头:主要是标识文件运行环境,PE32能在32位和64位的版本上运行,PE64则标识该托管模块只能在64位的版本上运行了。
B、CLR头:主要包含要求CLR版本、托管块块的入口方法(Main())等。
C、元数据:主要描述了该托管模块把义定的类型和成员和所引用的类型和成员。
D、中间语言代码:简单的说是通过编译器把源代码生成一另一种CLR能处理的代码。

可以说“元数据”在托管块块扮演着很重要的角色,编写代码时“智能感知”特性就是来自元数据、可以实现远程机器上重建对象状态等等。

2、资源文件

资源文件就比较简单了,包含一些应用程序所用的到的一些资源:GIF、JPEG......

3、清单

主要列出了构成程序集的文件集。

二、CLR程序集教程之程序集的分类

程序集主要分为两种类型:强命名程序集、弱命名程序集。这两种程序集的结构上完全一致的。两者真正的区别在于强命名程序集用发布者的公钥/私钥允许对程序集的惟一标识。

1、强命名程序集

一个强命名程序集包括4个重要属性:一个文件名(无扩展名)、一个版本号、一个语言文化标识以有一个公钥。這些属性惟一地标识了程序集。

2、弱命名程序集

简单地说,没有以上强命名程序集所有的属性就是弱命名程序集.

三、CLR程序集教程之程序集的部署

程序集部署主要分为:私有部署和全局部署。强命名程序集可以私有部署,也可以全局部署,而弱命名程序集只能私有部署。

【编辑推荐】

  1. 浅析如何调试SQL CLR存储过程
  2. 浅析CLR类库调用方法
  3. 经典讲解创建CLR存储过程
  4. 经典讲解 CLR是什么?
  5. 深入了解.NET编译器中CLR加载过程

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...