Windows程序加载DLL提供了两种方法:
1、静态加载
2、动态加载
.Net 程序提供也提供了两种方法来加载Assembly
1、通过编译时以/r参考该Assembly, 或者在程序中能过Add Reference方式来加载,这个应该算是静态加载。
2、通过动态加载,即在编译时并没有加载,当需要使用Assembly中的Type时,再加载。分为三步:
一、Assembly.Load() 加载Assembly。
二、通过返回的Assembly对象的GetType函数取得类的Type对象。
三、通过Activator.CreateInstance函数创建类的对象实例。
例:
Assembly assem = Assembly.Load(Assembly名)
Type type = assem.GetType(类全名);
if (type == null )
return ;
类 o = Activator.CreateInstance(type) as 类;
这里充分利用了反射机制,所以反射机制在.net和Java这种语言中起着至关重要的作用。