c 簡易反射呼叫泛型方法

2022-02-15 07:15:37 字數 1034 閱讀 4496

// 所謂程式集的簡單理解,存在不同專案中(不是解決方案),即using前需要引用**.dll

1、呼叫當前類檔案下的方法public listgetbycondition(operatelogmodel model)

methodinfo servicemethod = this.gettype().getmethod("getbycondition");// 初始化方法資訊,this表示當前物件,如呼叫其它物件可以代入。

object modelobj = assembly.load("5yue.models").createinstance("_lbh.models.ordermodel");// 跨程式集初始化乙個空的model物件

type modeltype = assembly.load("5yue.models").gettype("_lbh.models.ordermodel");// 獲取model類

// 也可:

type modeltype = modelobj.gettype() ;// 獲取model類

// 呼叫

model model = new model();// 引數物件

object para = new object;

var result = servicemethod.makegenericmethod(modeltype).invoke(this, para);// 查詢資料

// 其中,makegenericmethod為呼叫泛型泛型必須,modeltype為傳入t的型別引數,para為方法形參,可同時傳入多個,並支援out,

// 獲取out的引數時: model = para[0];

2、程式集內呼叫

object obj = assembly.createinstance("_lbh.models.ordermodel");// 反射建立物件

type type = type.gettype("_lbh.models.ordermodel");// 反射型別資訊

// 也可:

type type = obj.gettype();

C 通過反射呼叫泛型方法

1.有乙個類,類中有乙個泛型方法。我們要通過反射來呼叫這個泛型方法。命名空間為 transight.hqv4.bll 類名為rvcbll 有兩個方法 a.public list maketest b.public listmaketest 2.反射,實質就是把命名空間的字串反射成我們想要的物件 例 ...

C 反射泛型

c 泛型反射和普通反射的區別,泛型反射和普通反射的區別就是泛型引數的處理上 先看乙個簡單的例子。class class1 要利用反射動態建立該型別例項,並呼叫 test 方法,我們可以使用如下方法 type type typeof class1 object o activator.createin...

C 反射泛型

摘自 c 泛型反射和普通反射的區別,泛型反射和普通反射的區別就是泛型引數的處理上 先看乙個簡單的例子。class class1 要利用反射動態建立該型別例項,並呼叫 test 方法,我們可以使用如下方法 type type typeof class1 object o activator.creat...