2016-07-14 6 views
1

を経由してリストを取得します。 -時間。そのインスタンスでは、私の場合、それはPと呼ばれています。上のリストをループする必要があります。私はそれをループしてみた場合私はPropertyInfoのタイプのリストが含まれているいくつかのクラスきた反射

var PropList = P.GetType().GetProperty("Properties").GetValue(this, null) 

を:しかし

foreach (var thisProp in PropList) - I get an error. 

ので、これを行うには、他の方法がある今、私が使用してプロパティの値を取得できますか? GetValue(...)一人で戻っobject以来

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) { 
    ... 
} 

:あなたはキャストに持って

おかげ

+0

エラーは何ですか? 'List Properties {get;}でインターフェースを作成できますか?セット;} 'メンバーとして、あなたは反射を必要としない? – Rhumborl

答えて

3

+0

これは、 'ジェネリックでない型' IEnumerable 'を型引数で使用することができない'というエラーを投げます。 –

+0

@Aleksa Kojadinovic: 'System.Collections.Generic; using System.Collections.Generic; 'を追加する必要があるようです –

+0

今、 http://imgur.com/Ict4v3V –

0

あなたのコードを確認した後、それは

var PropList = P.GetType().GetProperty("Properties").GetValue(this, null) 

が原因あなたが取得し、エラーされるまでのIEnumerableを返さないことは明らかです。解決策の1つこの問題を解決するには、Ienumerableにキャストする必要があります。

var PropList = P 
.GetType() 
.GetProperty("Properties") 
.GetValue(this, null) as IEnumerable<PropertyInfo>; 
関連する問題