动态替换方法名

本文关键字:方法 替换 动态 | 更新日期: 2023-09-27 18:06:23

我有一个方法GetData(),我想根据字符串参数动态地交换它的名称。

第一件事是从字符串参数MethodName中获取方法。

var methodinfo = repository.GetType().GetMethod("MethodName");

现在,如何用methodinfo中提取的动态值替换下面的GetData()方法?

var argumentType = repository.GetData().GetType().GetGenericArguments()[0];

我试过这样做,但没有成功:

var argumentType =  methodinfo.GetType().GetGenericArguments()[0];

动态替换方法名

如果我对你的问题理解正确的话,你需要这样的东西:

public class ProgChoice
{
    public static void ProgSelection()
    {
        Assembly assembly = Assembly.GetExecutingAssembly();
        Type t = assembly.GetType("ProgChoice.ProgSelection", false, true);
        string lcProgStr = "Prog";
        int liProgNumb = 4;
        // Concatenate the 2 strings
        lcProgStr = lcProgStr + liProgNumb.ToString();
        MethodInfo method = t.GetMethod(lcProgStr);
        method.Invoke(null, null);
        Console.ReadKey();
    }
}