动态替换方法名称

时间:2014-06-03 17:36:36

标签: c# reflection

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

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

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

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

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

我试过这样的事情,但没有工作:

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

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,你需要这样的事情:

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();
    }
}