如何将参数类型数组传递给Type []?

时间:2014-06-15 15:44:08

标签: c# reflection

场景: 我有App.Config文件,其中有某些方法,我想通过Reflection调用它们。在执行此操作时,我还需要告诉传递给该方法的 Type 参数。我在运行时检索该方法的参数类型列表,如下所示:

ParameterInfo[] parameters = magicType.GetMethod("ItsMagic").GetParameters();

但我不知道如何将这个数组放在以下函数中:

magicType.GetMethod("ItsMagic", new Type[] {parameters.Cast<Type>()});

导致以下错误:

错误:无法隐式转换类型&#39; System.Collections.Generic.IEnumerable&#39;到&#39; System.Type&#39;。存在显式转换(您是否错过了演员?)

有任何建议如何实现?

1 个答案:

答案 0 :(得分:2)

parameters.Select(p=>p.ParameterType).ToArray()

magicType.GetMethod("ItsMagic", parameters.Select(p=>p.ParameterType).ToArray() );