GeoExplorer

enjoy

导航

.NET概述

CLS(公共语言规范,Common Language Specification).NET语言必须遵守的规范。

BCL(基类库,Base Class Library):一组可以在程序开发中使用的基类。

CLI(公共语言基础设施,Common Language Infrastructure):在这个软件层中只能识别IL(Intermediate Language),该层负责在程序的执行期间将IL代码编译为机器语言。

CLR(公共语言运行库,Common Language Runtime):MS所提供的CLI实现称为CLR

 

程序集(assembly)和模块(module)

程序集是一个逻辑上的单元,由多个模块的文件定义而成。所有这些组成一个程序集的文件必须放在同一文件夹下。所有程序集有且仅有一个主模块。

主模块是一个以.EXE.DLL为扩展名的文件。

非主模块是一个以.NETMODULE为扩展名的文件。

 

模块结构

主模块:

PE文件头

CLR文件头

清单

元数据

IL代码

资源

非主模块:

PE文件头

CLR文件头

元数据

IL代码

资源

PE(Portable Executable)文件头:存储最低可运行的WINDOWS版本号

CLR文件头:CLR版本信息

清单(manifest):包括了主模块对程序集其他模块和资源文件的使用

元数据(metadata):自描述信息(类型、类型成员、类型依赖项和资源等)

 

 

清单的结构

       清单包含了程序集的自描述信息,共有四种自描述信息:

  • AssemblyDef
  • FileDef
  • ManifestResourceDef
  • ExportedTypeDef

 

类型元数据段的结构

       类型元数据保存在一个表中。共有三种用于类型的源数据表:

  • 定义表
  • ModuleDef
  • TypeDef
  • MethodDef
  • FieldDef
  • PropertyDef
  • EventDef
  • 引用表:使用一个字节来编号
  • AssemblyRef
  • ModuleRef
  • TypeRef
  • MemberRef
  • 指针表
  • MethodPtr
  • ParamPtr
  • FieldPtr

 

       堆:元数据段还包括四种堆:

  • #Strings:用于保存字符串
  • #Blob:用于保存二进制信息
  • #US(User String):包含直接定义在代码中的字符串
  • #GUID:用于保存GUIDGUID是一个16字节的常量,用于资源的命名

 

posted on 2008-10-06 12:39  GeoExplorer  阅读(482)  评论(0)    收藏  举报