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這種語言中起着至關重要的作用。