程序集和应用程序域

程序集的分类:

静态程序集和动态程序集:

静态程序集:静态程序集包括中间语言元数据(MSIL,类似于Java字节码的东西),以及该程序集的资源(位图、JPEG 文件、资源文件等)。静态程序集存储硬盘文件中。

动态程序集:动态程序集直接从内存运行并且在执行前不存储到磁盘上,如ASP.NET 2.0中的网站程序运行的时候产生的是动态程序集。

专用程序集和共享程序集:专用程序集一般附带在某些软件上,且只为该软件提供专用的类库,这些库包含的代码只能用于该应用程序。一般专用程序集是与应用程序放在同一目录下的,在部署的时候与应用程序一起复制到目标机器上即可。

共享程序集是其他应用程序可以使用的公共库,一般是安装到系统GAC中。因为其他软件可以访问共享程序集,所以所有共享程序集必须带有强名称(由发行者签名)。


在.NET结构中,应用程序有一个新的边界:应用程序域。应用程序域是一个用于隔离应用程序的“轻量级分界线”。所谓的“轻量级”是因为多个应用程序域可以存在于单个操作系统进程中。


AppDomain类用于创建和中断应用程序域,加载和卸载程序集。

常用属性和方法:

FriendlyName取得应用程序域的友好名称

CreateDomain()创建新的应用程序域。

ExecuteAssembly()执行应用程序域中的程序集。它可用来执行另一个应用程序域中的代码。

Unload()执行域的正常卸载。只有应用程序域中正在运行的所有线程都已停止或域中不再有运行的线程之后,才卸载该应用程序域。

你可能感兴趣的:(程序集和应用程序域)