动态替换方法名
本文关键字:方法 替换 动态 | 更新日期: 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();
}
}