C 利用反射根據類名建立類的例項物件

2022-09-12 11:42:15 字數 821 閱讀 3416

1、假設你要反射乙個 dll 中的類,並且沒有引用它(即未知的型別):

assembly assembly = assembly.loadfile("程式集路徑,不能是相對路徑"); // 引導程式集(exe 或 dll) 

dynamic obj = assembly.createinstance("類的完全限定名(即包括命名空間)"); // 建立類的例項 

2、若要反射當前專案中的類(即當前專案已經引用它了)可以為:

assembly assembly = assembly.getexecutingassembly(); // 獲取當前程式集 

dynamic obj = assembly.createinstance("類的完全限定名(即包括命名空間)"); // 建立類的例項,返回為 object 型別,需要強制型別轉換

3、也可以為:

type type = type.gettype("類的完全限定名"); 

dynamic obj = type.assembly.createinstance(type); 

4、不同程式集的話,則要裝載呼叫,**如下:

system.reflection.assembly.load("程式集名稱(不含檔案字尾名)").createinstance("命名空間.類名", false);

如:dynamic o = system.reflection.assembly.load("mydll").createinstance("mynamespace.a", false);

C 利用反射根據類名建立類的例項物件

反射 其實就是利用程式集的元資料資訊。反射可以有很多方法,編寫程式時請先導入 system.reflection 命名空間。1 假設你要反射乙個 dll 中的類,並且沒有引用它 即未知的型別 assembly assembly assembly.loadfile 程式集路徑,不能是相對路徑 引導程式...

C 反射 通過類名建立類例項

反射 其實就是利用程式集的元資料資訊。反射可以有很多方法,編寫程式時請先導入 system.reflection 命名空間。2 若要反射當前專案中的類 即當前專案已經引用它了 可以為 3 也可以為 參考 反射幫助類 public static class reflectionhelper 建立物件例...

C 根據類名建立類的例項物件

因為我使用這個方法的類都是和abstractscenepagedto處於乙個命名空間以及程式集下的,所以獲取命名空間和程式集的時候,直接使用abstractscenepagedto這個類進行獲取,這樣更準確一些,也不怕專案遷移改名。1 private t createactivityscenepag...