|
发表于 2024-12-14 04:17:46
|
显示全部楼层
CLR的执行模型
托管模块的组成:PE表头,CLR表头,元数据,中间语言(IL)代码
中间语言(IL):面向对象的机器语言
程序集:组件复用,实施安全策略和版本策略的最小单位
程序集的组成:清单,托管模块,资源文件
即时编译(JIT),生成本地代码(NGen.exe),代码验证与安全(PEVerify.exe)
ECMA标准——动态脚本语言(ECMAScript)
ECMA标准——C#编程语言
ECMA标准——通用语言基础构造(CLI):文件格式,通用类型系统(CTS),可扩展元数据系统,中间语言(IL),对底层平台的访问(P/Invoke)
通用语言运行时(CLR),通用类型系统(CTS),通用语言规范(CLS)
CLR支持的三种互操作:
1、托管代码调用DLL中非托管函数(P/Invoke)
2、托管代码使用现存的COM组件(非托管组件作为COM服务器)(TlbImp.exe)
3、非托管代码使用托管类型(托管类型作为COM服务器)(TlbExp.exe、RegAsm.exe)
CSC.exe,AL.exe,ILASM.exe,ILDASM.exe,NGen.exe,PEVerify.exe,TlbImp.exe,TlbExp.exe,RegAsm.exe
生成、打包、部署及管理应用程序与类型
三类元数据表:定义表,引用表,清单表
程序集的特性:程序集定义了可重用的类型;程序集标识一个版本号;程序集可以包含与之相关的安全信息
多文件程序集:标准PE文件(包含清单表)(.exe,.dll),托管模块文件(.netmodule),资源文件(.jpg,.gif等)
使用多文件程序集通常有三个原因:
1、可以将类型分别实现在不同的文件中,从而允许文件在互联网环境中进行增量下载
2、可以按需要向程序集中添加资源或数据文件
3、可以使我们创建的程序集包含一些用不同编程语言实现的类型
语言文化中性程序集:没有指定语言文化的程序集,一般包含代码的程序集都为语言文化中性的程序集
卫星程序集:包含特定语言文化资源的单独的程序集,一般不包含任何代码(AL.exe)(System.Resources.ResourceManager)
程序集(弱命名)文件的定位: |
|