public Object GetBeanPropInternal(Object o, int index)
 {
     try
     {
         Object value = _field.GetValue(o);
         return(EnumerableMethodPropertyGetter.GetBeanEventEnumerableValue(value, index));
     }
     catch (InvalidCastException e)
     {
         throw PropertyUtility.GetMismatchException(_field, o, e);
     }
     catch (PropertyAccessException)
     {
         throw;
     }
     catch (Exception e)
     {
         throw new PropertyAccessException(e);
     }
 }
 public Object GetBeanProp(Object o)
 {
     try
     {
         Object value = _fastMethod.Invoke(o);
         return(EnumerableMethodPropertyGetter.GetBeanEventEnumerableValue(value, _index));
     }
     catch (InvalidCastException e)
     {
         throw PropertyUtility.GetMismatchException(_fastMethod.Target, o, e);
     }
     catch (PropertyAccessException)
     {
         throw;
     }
     catch (Exception e)
     {
         throw new PropertyAccessException(e);
     }
 }
 public Object Get(EventBean eventBean, int index)
 {
     return(EnumerableMethodPropertyGetter.GetBeanEventEnumerableValue(eventBean.Underlying, index));
 }
 public override ICodegenExpression CodegenUnderlyingGet(ICodegenExpression underlyingExpression, ICodegenContext context)
 {
     return(LocalMethod(EnumerableMethodPropertyGetter.GetBeanPropCodegen(
                            context, BeanPropType, TargetType, _fastMethod.Target, _index), underlyingExpression));
 }