zoukankan      html  css  js  c++  java
  • 如何通过反射动态调用泛型方法

    如何通过反射动态调用泛型方法
    在调用泛型方法,如果泛型本身也不明确,需要通过反射动态得知的情况下,需要使用如下方法来动态调用泛型了
    使用示例
    //泛型方法
    public class LocalizationManager
    {
        public static List<ComboDataVm> TranslateEnumData<TEnum>(string name = "") where TEnum : struct, IComparable, IFormattable, IConvertible
        {
            return null;
        }
    }
    
    
    //--------------------------泛型方法的动态调用示例-------------------
    string myName="test";//泛型方法的参数
    string typeName="TYPE.Serivces.Dto.MyDto";//泛型的类型FullName,
    Type tType=Type.GetType(typeName);//泛型类型,实际应用中,泛型的类型或FullName可通过反射动态获取
    
    Type locType = typeof(LocalizationManager);//获取方法所在的class的类型
    MethodInfo mi = locType.GetMethod("TranslateEnumData");//获取方法
    MethodInfo dmi=mi.MakeGenericMethod(tType);//获取泛型方法
    var  comboDatas =(List<ComboDataVm>) dmi.Invoke(locType, new object[] { myName });//调用泛型方法并且传递参数name,执行方法返回的结果为object,要强制转换
  • 相关阅读:
    实验6.1
    SOA
    python的镜像包安装
    中文分词:双向匹配最大算法(BI-MM)
    从github中获取代码
    解决文件冲突
    创建分支
    上传本地文件到github
    mysql事务
    查询练习2
  • 原文地址:https://www.cnblogs.com/berlin/p/9086818.html
Copyright © 2011-2022 走看看