Example #1
0
        private static bool TargetMemberRecursesWithin(QualifiedMember parentMember, Member member)
        {
            var nonSimpleChildMembers = GlobalContext.Instance
                                        .MemberFinder
                                        .GetTargetMembers(parentMember.Type)
                                        .Where(m => !m.IsSimple)
                                        .ToArray();

            if (nonSimpleChildMembers.Contains(member))
            {
                var childMember = parentMember.Append(member);

                return(childMember.IsRecursive);
            }

            return(nonSimpleChildMembers.Any(m => TargetMemberRecursesWithin(parentMember.Append(m), member)));
        }
Example #2
0
        private static QualifiedMember GetNonEnumerableChildMember(QualifiedMember parentMember, Member childMember)
        {
            var qualifiedChildMember = parentMember.Append(childMember);

            if (qualifiedChildMember.IsEnumerable)
            {
                qualifiedChildMember = qualifiedChildMember.GetElementMember();
            }

            return(qualifiedChildMember);
        }
 public static QualifiedMember GetElementMember(this QualifiedMember enumerableMember)
 => enumerableMember.Append(GetElementMember(enumerableMember.Type));