永发信息网

.net中怎么将反射得到的类型,当作泛型中的参数进行传递?

答案:2  悬赏:10  手机版
解决时间 2021-01-31 03:27
  • 提问者网友:蓝莓格格巫
  • 2021-01-30 16:41
// 反射获取表名的Type
Type type = Assembly.Load("Apt.MWSGR.Domain").GetType("Apt.MWSGR.Domain.Entities." + tableName);
var exportDataByTableNameQuery = new ExportDataByTableNameQuery();
就是上面第二行的大T怎么变为我想要的类型啊?
网上一些大牛说用Type.MakeGenericType方法,查了msdn不是很会用啊,哪位大神能否结合我上面的代码,给出一些事例啊,我要代码?
最佳答案
  • 五星知识达人网友:洎扰庸人
  • 2021-01-30 18:16
你看下 type.MakeGenericType 的定义。返回的还是TYPE
你只能type 传过去。具体怎么获取那个成员 。你可以在穿个委托过去。
全部回答
  • 1楼网友:鸽屿
  • 2021-01-30 18:38
通过type类的type.makegenerictype方法获取  // 这个tablename是从报文里读取的,现在测试,我直接给个名字 string tablename = "baohuguihua"; // 反射获取表名的type  type type = assembly.load("apt.mwsgr.domain").gettype("apt.mwsgr.domain.entities." + tablename); type = typeof(exportdatabytablenamequery<>).makegenerictype(type); object exportdatabytablenamequery = activator.createinstance(type); // 下面这句话是关键,太长了,分3行显示 var  exportdata = type.getmethod("getall", system.reflection.bindingflags.public |  system.reflection.bindingflags.instance, null, new type[0], null) .invoke(exportdatabytablenamequery, null);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯