1.有乙個類,類中有乙個泛型方法。我們要通過反射來呼叫這個泛型方法。
命名空間為:transight.hqv4.bll
類名為rvcbll
有兩個方法
a.public list maketest()
b.public listmaketest()
2.反射,實質就是把命名空間的字串反射成我們想要的物件
例:assembly bizassembly = assembly.load("transight.hqv4.bll");//反射命名空間 var obj = bizassembly.createinstance("transight.hqv4.bll.rvcbll", true,
bindingflags.default, null, new object, null, null)//建立類例項,帶建構函式的例項,相當於var obj=new rvcbll(this.commonparam)
若是呼叫普通的a方法,我們直接這樣就可以
type test=obj.gettype();
methodinfo mi1=test.getmethod("maketest");
mi1.invoke(obj,null)
3.那我們要呼叫泛型方法b要怎麼做呢?
以上的反射步驟不變,要在mi1的基礎上構造泛型方法
type test=obj.gettype();
methodinfo mi1=test.getmethod("maketest");
methodinfo mi2 = mi1.makegenericmethod(test);
mi1.invoke(obj,null)
c 簡易反射呼叫泛型方法
所謂程式集的簡單理解,存在不同專案中 不是解決方案 即using前需要引用 dll 1 呼叫當前類檔案下的方法public listgetbycondition operatelogmodel model methodinfo servicemethod this.gettype getmethod...
C 通過反射呼叫方法
用反射呼叫方法 常用於軟體架構中 假如你定義好了基類和介面,其他人使用基類派生出新的方法,你在不知道有多少類會使用此基類派生,但是你需要呼叫所有的派生類的方法時,就可以這樣,直接遍歷相同命名空間中的由基類派生的所有類,然後例項化所有類,呼叫所有方法 using system using system...
C 反射泛型
c 泛型反射和普通反射的區別,泛型反射和普通反射的區別就是泛型引數的處理上 先看乙個簡單的例子。class class1 要利用反射動態建立該型別例項,並呼叫 test 方法,我們可以使用如下方法 type type typeof class1 object o activator.createin...