C 通過反射呼叫泛型方法

2022-09-20 19:00:12 字數 855 閱讀 9243

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...