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); } } }