zoukankan      html  css  js  c++  java
  • c#简易反射调用泛型方法

    // 所谓程序集的简单理解,存在不同项目中(不是解决方案),即using前需要引用**.dll


    1、调用当前类文件下的方法public List<T> GetByCondition<T>(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[]{model};
    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();

  • 相关阅读:
    人工智能第一次作业
    在uni-app的textarea中输入纯数字或者英文不换行的问题
    uni-app实现选择图片上传并显示进度条
    减肥计划
    前端时间格式2020-02-11T12:24:18.000+0000转化成正常格式
    男孩和女孩
    java 获取当前年份 月份 日期
    深海收破烂
    如何爱一个人
    随手心情
  • 原文地址:https://www.cnblogs.com/lbhqq/p/5529687.html
Copyright © 2011-2022 走看看