我试图让一个子阵列转换为'parameterType'中的类型。 'para'是一个对象数组。我收到了无效的强制转换异常。
我是c#的新手,无法解决这个问题。
object[] param_values = new object[parameterType.Length];
int k,q = 0;
int size;
foreach (ParameterInfo p in parameterType)
{
size = Marshal.SizeOf(p.ParameterType);
object dest = para.Skip(k).Take(size).Cast<object>();
param_values[q] = Convert.ChangeType(dest, p.ParameterType); // exception occurs here
k = k + size;
q++;
}
答案 0 :(得分:0)
您正在选择要投射的多个对象。
object dest = para.Skip(k).Take(size).Cast<object>();
会返回IEnumerable<object>
,您无法对其进行转换/更改,例如Int32
。
你可以试试这个:
object[] param_values = new object[parameterType.Length];
int q = 0;
foreach (object p in para)
{
param_values[q] = Convert.ChangeType(p, parameterType[q]);
q++;
}