コード例 #1
0
            public override Expression GetAccess(Expression parentInstance)
            {
                var queriedMemberAccess = NextPart.GetAccess(parentInstance);
                var hasCheck            = GetHasCheck(queriedMemberAccess);

                return(MapperData.GetValueConversion(hasCheck, MapperData.TargetMember.Type));
            }
コード例 #2
0
            public override Expression GetAccess(Expression parentInstance)
            {
                var memberAccess = SourceMember.GetQualifiedAccess(parentInstance);

                return(_isRootMemberPart
                    ? NextPart.GetAccess(memberAccess)
                    : memberAccess);
            }
コード例 #3
0
            public override Expression GetAccess(Expression parentInstance)
            {
                var enumerableAccess = NextPart.GetAccess(parentInstance);

                var helper = new EnumerableTypeHelper(enumerableAccess.Type, _sourceMember.Type);

                _condition = GetCondition(enumerableAccess, helper);

                var valueAccess = (helper.HasListInterface && MapperData.RuleSet.Settings.AllowIndexAccesses)
                    ? enumerableAccess.GetIndexAccess(GetIndex(enumerableAccess))
                    : GetOrderedEnumerableAccess(enumerableAccess, helper);

                if (NextPart.NextPart != null)
                {
                    valueAccess = NextPart.NextPart.GetAccess(valueAccess);
                }

                if (MapperData.TargetMember.IsSimple)
                {
                    return(MapperData.GetValueConversion(valueAccess, MapperData.TargetMember.Type));
                }

                return(valueAccess);
            }
コード例 #4
0
            public override Expression GetAccess(Expression parentAccess)
            {
                var enumerableAccess = NextPart.GetAccess(parentAccess);

                return(base.GetAccess(enumerableAccess));
            }