У меня есть статический метод, который имеет подпись:Reflection Метод Invoke - Не удалось преобразовать Parameters
pubic static foo (float,float,IEnumberable<IEnumberable<double>>)
Я использую отражение для вызова метода с аргументами
int, int, and List<List<double>>,
это не удается, мне кажется, что параметр List<List<double>>
не может быть преобразован. Я использую приведенный ниже код, чтобы попытаться преобразовать параметры
Возможно ли это? Ограничение рефлексии? Я бы подумал, что List реализовал интерфейс IEnumerable и будет работать.
var args = inputportvals.Select(x=>
{
if (x.First is IronPython.Runtime.List || x.First is IDynamicMetaObjectProvider)
{
return x.First;
}
if (x.First is IEnumerable || x.First is IList)
{
return x.First as IEnumerable;
}
else
{
return Convert.ChangeType(x.First, infos.Where(y=>y.Name == x.Second).First().ParameterType);
}
}
).ToArray();
funcdef.MethodPointer.Invoke(null,args);
Спасибо, вы можете объяснить мне, почему это так, когда список конвертируется в IEnumerable ? –
mjk