示例#1
0
        public override void Write(DocumentFormatter output, OutputContext context)
        {
            if (Overloads.Count == 0)
            {
                base.Write(output, context);
                return;
            }

            output.Header(1, SharedTitle);
            WriteInfoBox(output, context);
            WriteOverloadsSummary(output, context);

            output.Table(new[] { "Overload", "Description" }, Overloads,
                         overload => overload.WriteLink(output, context),
                         overload => overload.WriteSummaryLine(output, context)
                         );

            foreach (var overload in Overloads)
            {
                output.Header(2, overload.Name);
                overload.WriteSummary(output, context);

                var syntax = overload.GetSyntax(context.Language);
                if (!string.IsNullOrEmpty(syntax))
                {
                    output.Header(3, "Syntax");
                    output.Code(syntax, context.Language.Name);
                }

                overload.WriteDetails(3, output, context);
            }
        }
示例#2
0
        protected void WriteTypesInCategory(DocumentFormatter output, OutputContext context, TypeCategory category, IEnumerable <ClrType> types)
        {
            output.Header(3, category.ToPluralString());

            output.Table(new[] { category.ToString(), "Description" }, types,
                         type => type.WriteLink(output, context),
                         type => type.WriteSummaryLine(output, context)
                         );
        }
示例#3
0
        protected void WriteMembersInCategory(int level, DocumentFormatter output, OutputContext context, MemberCategory category, IEnumerable <ClrMember> members)
        {
            output.Header(level, category.ToPluralString());

            output.Table(new[] { category.ToString(), "Description" }, members,
                         member => member.WriteLink(output, context),
                         member => member.WriteSummaryLine(output, context)
                         );
        }
示例#4
0
        public override void WriteMembers(int level, DocumentFormatter output, OutputContext context)
        {
            output.Header(level, "Members");

            output.Table(new[] { "Name", "Value", "Description" }, Info.GetEnumValues().Cast <Enum>(),
                         value => output.Text(Info.GetEnumName(value)),
                         value => output.Text((value as IFormattable)?.ToString("D", CultureInfo.InvariantCulture)),
                         value => context.Document.Members.For(value.GetCRef(), doc => output.Xml(doc.Summaries.FirstOrDefault()))
                         );
        }
示例#5
0
        protected virtual void WriteSection(DocumentFormatter output, int level, string header, string label, IEnumerable <XmlReferenceNode> items)
        {
            if (items == null || !items.Any())
            {
                return;
            }

            if (!string.IsNullOrEmpty(header))
            {
                output.Header(level, header);
            }

            output.Table(new[] { label, "Description" }, items,
                         item => output.LinkCRef(item.CRef, Utils.FormatCRef(item.CRef)),
                         item => output.Xml(item));
        }
示例#6
0
        protected virtual void WriteSection(DocumentFormatter output, int level, string header, IEnumerable <XmlRevisionHistory> items)
        {
            var revisions = items?.Where(item => item.IsVisible).SelectMany(item => item.Revisions.Where(revision => revision.IsVisible));

            if (revisions == null || !revisions.Any())
            {
                return;
            }

            if (!string.IsNullOrEmpty(header))
            {
                output.Header(level, header);
            }

            output.Table(new[] { "Date", "Version", "Author", "Description" }, revisions,
                         revision => output.Text(revision.Date),
                         revision => output.Text(revision.Version),
                         revision => output.Text(revision.Author),
                         revision => output.Xml(revision));
        }