场景: 我有App.Config文件,其中有某些方法,我想通过反射调用它们。在这样做的同时,我还需要告诉传递给该方法的参数的类型。我在运行时检索该方法的参数类型列表,如下所示:
ParameterInfo[] parameters = magicType.GetMethod("ItsMagic").GetParameters();
但是我不知道如何把这个数组放在下面的函数中:
magicType.GetMethod("ItsMagic", new Type[] {parameters.Cast<Type>()});
将导致以下错误:
错误:不能隐式转换类型"System.Collections.Generic"。IEnumerable'到'System.Type'。存在显式转换(您是否缺少强制类型转换?)
有什么建议吗?
parameters.Select(p=>p.ParameterType).ToArray()
magicType.GetMethod("ItsMagic", parameters.Select(p=>p.ParameterType).ToArray() );