Esempio n. 1
0
        private void BuildPropertyHtml(IEnumerable <ReflectedPropertyInfo> properties)
        {
            var q = from p in properties
                    where !p.IsInherited
                    group p by p.Name
                    into overloads
                    select overloads;

            foreach (var memberOverloadsEnumerable in q)
            {
                XDoc   html            = null;
                string href            = null;
                string path            = null;
                string title           = null;
                string assembly        = null;
                var    memberOverloads = memberOverloadsEnumerable.ToList();
                foreach (var member in memberOverloads.OrderBy(x => x.DisplayName))
                {
                    var xmlDoc = GetDoc(member.Signature);
                    if (html == null)
                    {
                        href = member.UriPath;
                        if (string.IsNullOrEmpty(href))
                        {
                            continue;
                        }
                        path     = member.FilePath;
                        title    = member.Name + " Property";
                        html     = NewHtmlDocument(title, true);
                        assembly = member.Assembly;
                    }
                    html.StartSection(1, "property", member.DisplayName);
                    html.CSharpBlock(member.CodeSignature)
                    .Div("summary", xmlDoc["summary"])
                    .Section(2, "remarks", "Remarks", xmlDoc["remarks"]);
                    if (member.IsIndexer)
                    {
                        BuildParameterTable(html, xmlDoc, member.IndexerParameters);
                    }
                    html.StartSection(2, "returns", "Value");
                    html.StartNameValueLine("type", "Type");
                    BuildParameterMarkup(html, member.ReturnType);
                    html.EndNameValue()
                    .Start("div")
                    .Attr("class", "summary")
                    .AddNodes(xmlDoc["returns"])
                    .End()
                    .EndSection();     // returns section
                    AddExceptionSection(html, xmlDoc);
                    html.EndSection();
                }
                if (html != null)
                {
                    Save(html, title, href, path, assembly);
                }
            }
        }