public static string GetFriendlyMemberPath(this IQualifiedMember member, IQualifiedMember rootMember)
        {
            var rootTypeName = rootMember.GetFriendlyTypeName();
            var memberPath   = member.GetPath();

            if (memberPath == rootMember.Name)
            {
                return(rootTypeName);
            }

            if (memberPath.StartsWith(rootMember.Name, Ordinal))
            {
                return(rootTypeName + memberPath.Substring(rootMember.Name.Length));
            }

            var rootMemberNameIndex = memberPath.IndexOf("." + rootMember.Name + ".", Ordinal);

            if (rootMemberNameIndex == -1)
            {
                return(rootTypeName + memberPath);
            }

            var rootMemberString = memberPath.Substring(rootMemberNameIndex + rootMember.Name.Length + 2);
            var path             = rootTypeName + "." + rootMemberString;

            return(path);
        }
예제 #2
0
 public static string GetFriendlyMemberPath(this IQualifiedMember member, IQualifiedMember rootMember)
 => GetFriendlyMemberPath(member, rootMember.GetFriendlyTypeName(), rootMember.Name);
예제 #3
0
 public string GetFriendlyTypeName() => _wrappedSourceMember.GetFriendlyTypeName();