【发布时间】:2017-12-26 20:49:13
【问题描述】:
我需要从任何类(在同一个程序集中)调用任何方法并传递参数。到目前为止一切顺利(我相信),但 Invoke 要求我提供一个对象数组(我可以获得),但顺序与方法中预定义的顺序相同。
我为参数做了这个类:
public class Parametros {
public string type { get; set; }
public string name { get; set; }
public object value { get; set; }
}
我的“调用”方法如下:
public static void Executar(string namespaceClass, string metodo,List<Parametros> parametros) {
Type type = Type.GetType(namespaceClass);
Object obj = Activator.CreateInstance(type);
MethodInfo methodInfo = type.GetMethod(metodo);
List<object> myParams = new List<object>();
foreach (Parametros myparam in parametros) {
//Get and order the params
myParams.Add(myparam.value);
}
methodInfo.Invoke(obj, myParams.ToArray());
}
如果没有在我的类Parametros中指定顺序的解决方案,有什么办法可以做到这一点,获取参数的名称并将其发送给invoke方法?
【问题讨论】:
标签: c# .net reflection invoke delegation