public override DynamicMetaObject BindGetMember(GetMemberBinder binder)
{
var propertyName = binder.Name;
var propertyType = binder.ReturnType;
var parameters = new Expression[]
{
Expression.Constant(propertyName)
};
var self = Expression.Convert(Expression, LimitType);
var methodCall = Expression.Call(self, _getValueMethodInfo, parameters);
var restrictions = BindingRestrictions.GetTypeRestriction(Expression, LimitType);
var getValue = new DynamicMetaObject(methodCall, restrictions);
return getValue;
}
}