我有一些类包含一个PropertyInfo类型的List:
P
我有一个该类的实例,但不知道它在运行时是哪个类。所以对于那个实例,在我的情况下,它被称为var PropList = P.GetType().GetProperty("Properties").GetValue(this, null)
,我需要遍历上面提到的列表。现在我可以使用:
foreach (var thisProp in PropList) - I get an error.
但如果我试图循环它:
ffmpeg -ss 00:00:00.33 -i user_17624_1-1762.webm -i user_17624_2-1767.webm -r 15 output_good.mp4
那么,有没有其他方法可以做到这一点?
由于
答案 0 :(得分:3)
你必须施放:
var PropList = P
.GetType()
.GetProperty("Properties")
.GetValue(P, null) as IEnumerable<PropertyInfo>; // notice "as ..."
// Since PropList is IEnumerable<T> you can loop over it
foreach (var thisProp in PropList) {
...
}
因为GetValue(...)
单独返回object
。
答案 1 :(得分:0)
在审核完您的代码后,很清楚
var PropList = P.GetType().GetProperty("Properties").GetValue(this, null)
不会返回由于您获得的错误而导致的异常数据。一种可能的解决方案要解决此问题,您需要将其强制转换为Ienumerable。
var PropList = P
.GetType()
.GetProperty("Properties")
.GetValue(this, null) as IEnumerable<PropertyInfo>;