因為我使用這個方法的類都是和abstractscenepagedto處於乙個命名空間以及程式集下的,所以獲取命名空間和程式集的時候,直接使用abstractscenepagedto這個類進行獲取,這樣更準確一些,也不怕專案遷移改名。
1private t createactivityscenepagebykey(string key) where
t:abstractscenepagedto
2dto
", key)));
6return
x;7 }
獲取型別的寫法從這裡看來的
//view code反射機制
//引數
object parameters = new
object[1
];
parameters[
0] =_rowdatafromcore;
//(基類)assembly.load("當前程式集名稱").createinstance("命名空間.子類名稱"));
type = (atypebase)assembly.load(typeof
(atypebase).assembly.getname().name)
.createinstance(
typeof(atypebase).namespace + "
." + string.format("a"
, typename)
,false
,system.reflection.bindingflags.default
,null,parameters,null,null);
c# 當前程式集名稱 :typeof(atypebase).assembly.getname().name
c# 命名空間:typeof(atypebase).namespace
這兩個的獲取還挺有用的。
這個位址寫的挺詳細的
///view code///反射幫助類
/// public
static
class
reflectionhelper
//////
建立物件例項
/// ///
要建立物件的型別
///型別所在程式集名稱
///型別所在命名空間
///型別名 ///
public
static t createinstance(string assemblyname, string namespace, string
classname)
catch}}
C 利用反射根據類名建立類的例項物件
反射 其實就是利用程式集的元資料資訊。反射可以有很多方法,編寫程式時請先導入 system.reflection 命名空間。1 假設你要反射乙個 dll 中的類,並且沒有引用它 即未知的型別 assembly assembly assembly.loadfile 程式集路徑,不能是相對路徑 引導程式...
C 利用反射根據類名建立類的例項物件
1 假設你要反射乙個 dll 中的類,並且沒有引用它 即未知的型別 assembly assembly assembly.loadfile 程式集路徑,不能是相對路徑 引導程式集 exe 或 dll dynamic obj assembly.createinstance 類的完全限定名 即包括命名空...
C 根據物件類完整名稱,建立物件例項
根據指定的類全名,返回物件例項 物件完整名稱 包名和類名 如 com.test public object createobjectinstance string objfullname if type null 將物件例項化 object obj activator.createinstance ...