0

エンティティ フレームワーク オブジェクトの複数のプロパティから値を取得しようとしています。11件の物件があり、それぞれに日付が割り当てられています。リフレクションを使用してみましたが、「オブジェクトがターゲット タイプと一致しません」というエラーが表示され続けます

 public void CheckWeekStatus()
    {
     var currentFlexi = from c in FlexiContext.FlexPeriods where c.FlexiCurrentYear == true select c;

     FlexPeriod s = new  FlexPeriod();

    PropertyInfo[] properties = s.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);

      foreach (var info in properties)
           {                     
             var o = info.GetValue(currentFlexi,null);                                        
           }
     }

FlexPeriod は、すべてのプロパティを含む型です。プロパティをループすることはできますが、明らかに、値にアクセスしようとしている方法に何か問題があります。任意の提案をいただければ幸いです。

4

1 に答える 1

5

まず、Typeオブジェクトをインスタンス化せずにを取得できます。

PropertyInfo[] properties = typeof( FlexPeriod ).GetProperties( ...

失敗する理由GetValueは、それcurrentFlexiがオブジェクトのコレクションFlexPeriod(実際にはIEnumerable<FlexPeriod>) であり、 の単一のインスタンスではないためですFlexPeriod

于 2012-11-19T14:22:27.037 に答える