从FieldInfo.GetValue返回的对象不能转换为Array

时间:2017-10-27 02:02:49

标签: c# reflection casting

我正在使用PCL(Profile7),我遇到了一个问题,即从fieldInfo.GetValue(myItem)返回的对象无法转换为数组。

我在使用null

时直接演员和(显然)As获得演员点数异常

enter image description here

如何将此对象转换为集合?

注意:我不知道类型是什么,因为我无法访问它。它是我正在使用的库的内部

1 个答案:

答案 0 :(得分:1)

检查dynamicProperties对象的类型,它在您显示的调试器屏幕截图中不可见。很可能它是某种List<>

如果它是一个引用类型数组(例如string[]object[]),您尝试的转换只会成功,如果类型是结构,它将失败,如此问题所示:{{3} }

在任何情况下,IReadOnlyCollection<T>IReadOnlyList<T>IEnumerable<T>接口都是协变的,您可以尝试转换为IEnumerable<object>,或者如果您需要更多信息,例如计数或索引器访问,尝试其他接口之一。