zoukankan      html  css  js  c++  java
  • 动态调用类里的方法的示例(wjx)

    //下面是需要被调用的类和方法,其中T要是传过去的类型

    public class InsertToDataBaseOnBack
    { 
    public string TableName{get;set;}
    public void AddDataFromFileAndTemplate<T>() where T : new()
    {
    List<T> lstDataForAdd = new List<T>();
    dvaContext CurrentContext = new CurrentContext();
    Type type = CurrentContext.GetType(); //获取类型
    PropertyInfo propertyInfo = type.GetProperty(TableName);//获取指定名称的属性
    MethodInfo method = propertyInfo.GetMethod.ReturnType.GetMethod("AddRange");//得到Add数组的方法
    object dbClass = propertyInfo.GetValue(CurrentContext, null); //拿到这个属性的值
    method.Invoke(dbClass, new object[] { lstDataForAdd });
    }
    }


    //下面是调用方要做的工作

    Type classType = Type.GetType("Models.call_detail_records, Models");Models是dll的命名空间,call_detail_records是一个实体类
    InsertToDataBaseOnBack logic = new InsertToDataBaseOnBack();
    logic.TableName="call_detail_records";
    MethodInfo method = typeof(InsertToDataBaseOnBack).GetMethod("AddDataFromFileAndTemplate");//定义被调用的方法
    MethodInfo generic = method.MakeGenericMethod(classType);//这一步是传入一个类型
    generic.Invoke(logic, null);
  • 相关阅读:
    5.JavaSE之数据类型详解
    4.JavaSE之标识符
    2.Java程序运行机制
    1.HelloWorld 仪式感
    10.安装开发环境
    【模板】后缀数组
    Luogu P3808 【模板】AC自动机(简单版)
    Luogu P3375 【模板】KMP字符串匹配
    LNSY集训
    Luogu P2580 于是他错误的点名开始了 (Trie树模板)
  • 原文地址:https://www.cnblogs.com/wjx-blog/p/8547418.html
Copyright © 2011-2022 走看看