Beispiel #1
0
        static XElement BuildNsSection(TypeDom.TypeKindEnum kind, TypeDom[] types)
        {
            if (!types.Any())
            {
                return(null);
            }

            XElement tbody;

            var ret = Section(
                Names[kind + "_s"],
                x("table", a("class", "doc_table"), tbody = x("tbody"))
                );

            tbody.Add(BuildRow(new XElement[0], x("span", Names[Strings.Name]), Names[Strings.Description].ToSpan(), "th"));

            foreach (var type in types)
            {
                tbody.Add(BuildRow(
                              Enumerable.Repeat(GetImage(Navigation.GetIconCss((kind + (type.Type.IsPublic ? "Pub" : "Prot")).To <MemberIconsEnum>()), Names[kind.ToString()], Navigation.EmptyImage, Names[kind.ToString()]), 1),
                              BuildTypeUrl(type.Type, false),
                              XMLUtils.GetTagInnerXml(type.DocInfo, "summary", Navigation, false)
                              ));
            }
            return(ret);
        }
        private static IEnumerable <XElement> GetMemberIcons(MemberDom member)
        {
            MemberIconsEnum?memberType = null;
            var             memberName = "";

            if (member is ConstructorDom)
            {
                memberType = member.IsPublic ? MemberIconsEnum.MethodPub : MemberIconsEnum.MethodProt;
                memberName = "Method";
            }
            if (member is MethodDom method)
            {
                if (method.IsOperator)
                {
                    memberType = member.IsPublic ? MemberIconsEnum.OperatorPub : MemberIconsEnum.OperatorProt;
                    memberName = "Operator";
                }
                else if (method.IsExtention)
                {
                    if (!member.IsPublic)
                    {
                        throw new InvalidOperationException();
                    }

                    memberType = MemberIconsEnum.MethodExtPub;
                    memberName = "Extention";
                }
                else
                {
                    memberType = member.IsPublic ? MemberIconsEnum.MethodPub : MemberIconsEnum.MethodProt;
                    memberName = "Method";
                }
            }
            else if (member is PropertyDom)
            {
                memberType = member.IsPublic ? MemberIconsEnum.PropertyPub : MemberIconsEnum.PropertyProt;
                memberName = "Property";
            }
            else if (member is FieldDom)
            {
                memberType = member.IsPublic ? MemberIconsEnum.FieldPub : MemberIconsEnum.FieldProt;
                memberName = "Field";
            }
            else if (member is EventDom)
            {
                memberType = member.IsPublic ? MemberIconsEnum.EventPub : MemberIconsEnum.EventProt;
                memberName = "Event";
            }

            memberName += member.IsPublic ? "Pub" : "Prot";

            if (memberType != null)
            {
                yield return(GetImage(Navigation.GetIconCss(memberType.Value), Names[memberName], Navigation.EmptyImage, Names[memberName]));
            }
            if (member.IsStatic)
            {
                yield return(GetImage(Navigation.GetIconCss(MemberIconsEnum.Static), Names[Strings.StaticMember], Navigation.EmptyImage, Names[Strings.StaticMember]));
            }
        }