CLR加载器(一)使用加载器的方式

加载器往往是隐式地为你工作。程序员能够通过程序集加载器显式地与加载器进行交互。程序集加载器通

过System.Reflection.Assembly类的LoadFrom静态方法向程序员公开。这个方法接收一个字符串,它可以

是文件系统路径,也可以是识别含有程序集清单模块的统一资源定位器。
下面代码加载了位于file://C:/usr/bin/xyzzy.dll的程序集。

using System;
using System.Reflection;
public Class Utilites{
 
public static Object LoadCustomerType{
  Assembly a 
= Assembly.LoadFrom("file://C:/usr/bin/xyzzy.dll");          
  
return a.CreatInstance("Acmecorp.LOB.Customer");
 }
}


尽管通过位置加载程序集很有意思,但是,大多数程序集是通过程序集解析器按名称加载的。程序集解析器使用四部程序集的名字(名称,文化,开发人员,组件版本),从而决定哪个程序集将由程序集加载器加载到内存中。程序集解析器通过System.Reflection.Assembly类的Load方法向程序员公开。
Load方法和LoadFrom方法很相似,这种相似只是在表面上,因为Load方法先使用程序集解析器运用版本策略,确定将加载程序集的版本。
下面的代码使用了程序集解析器

using System;
using System.Reflection;
public Class Utilites{
 
public static Object LoadCustomerType{
  Assembly a 
= Assembly.Load("xyzzy, Version = 1.2.3.4, Culture = neutral, 

PublicKeyToken 
= 9a33f2632997fcc");
  return a.CreatInstance("Acmecorp.LOB.Customer");
 }

}


版本策略可以通过配置文件指定。配置文件包括计算机范围的配置文件,和特定应用程序的配置文件。
计算机范围的配置文件总是被命名为machine.config,存于%SystemRoot%\Microsoft.Net\Framework\v1.X.nnnn\Config目录下。
特定应用程序的配置文件总是在应用程序的APPBASE目录。对于Asp.Net应用程序,APPBASE是Web应用程序的虚拟目录的根节点。对于基于CLR的.EXE的程序,其配置文件的名称与执行文件的名称相同,只是配置文件名的后缀为".Config"。

今天就先写到这里,下次奉上关于配置文件的结构和应用

这是我第一次写Blog文章,如有不对之处,请各位前辈指点。

posted @ 2005-08-03 10:06  斯伯内德  阅读(807)  评论(0编辑  收藏  举报