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是它currentFlexiFlexPeriod对象的集合(实际上是一个IEnumerable<FlexPeriod>),而不是FlexPeriod.

于 2012-11-19T14:22:27.037 回答