public override void Generate() { if (!this.IsGenerated) { TypeDef definingType = null; if (this.typesMethods != null && this.typesMethods.Count > 0) { definingType = (TypeDef)this.typesMethods[0].Type; } if (!this.xmlComments.Exists()) { this.Blocks.Add(new NoXmlComments(definingType)); } this.Blocks.Add(new Header1(definingType.GetDisplayName(false) + " Constructors")); if (this.typesMethods != null && this.typesMethods.Count > 0) { SummaryTable methods = new SummaryTable(); var sortedMethods = from method in this.typesMethods where method.IsConstructor && !LiveDocumentorFile.Singleton.LiveDocument.IsMemberFiltered(method) orderby method.Name select method; foreach (MethodDef currentMethod in sortedMethods) { CRefPath crefPath = new CRefPath(currentMethod); System.Windows.Documents.Hyperlink link = new System.Windows.Documents.Hyperlink(); link.Inlines.Add(new System.Windows.Documents.Run(currentMethod.GetDisplayName(false))); link.Tag = new EntryKey(currentMethod.GetGloballyUniqueId()); link.Click += new System.Windows.RoutedEventHandler(LinkHelper.Resolve); Block constructorSummary = this.GetSummaryFor( xmlComments, currentMethod.Assembly, crefPath ); methods.AddItem(link, constructorSummary, Model.ElementIconConstants.GetIconPathFor(currentMethod)); } this.Blocks.Add(methods); } this.IsGenerated = true; } }
/// <summary> /// Generates the pages contents. /// </summary> public override void Generate() { if (!IsGenerated) { TypeDef definingType = null; if (_properties != null && _properties.Count > 0) { definingType = (TypeDef)_properties[0].OwningType; } if (!_xmlComments.Exists()) { Blocks.Add(new NoXmlComments(definingType)); } Blocks.Add(new Header1(definingType.GetDisplayName(false) + " Properties")); if (_properties != null && _properties.Count > 0) { SummaryTable methods = new SummaryTable(); var sortedProperties = from property in _properties orderby new DisplayNameSignitureConvertor(property, false, true).Convert() select property; foreach (PropertyDef currentProperty in sortedProperties) { CRefPath path = new CRefPath(currentProperty); System.Windows.Documents.Hyperlink link = new System.Windows.Documents.Hyperlink(); link.Inlines.Add(new Run(new DisplayNameSignitureConvertor(currentProperty, false, true).Convert())); link.Tag = new EntryKey(currentProperty.GetGloballyUniqueId()); link.Click += new System.Windows.RoutedEventHandler(LinkHelper.Resolve); Block description = GetSummaryFor(_xmlComments, currentProperty.OwningType.Assembly, path); methods.AddItem(link, description, Model.ElementIconConstants.GetIconPathFor(currentProperty)); } this.Blocks.Add(methods); } this.IsGenerated = true; } }
public override void Generate() { this.Blocks.Add(new Header1(this.associatedEntry.Name)); SummaryTable classTable = new SummaryTable("Namespace", string.Empty, false, false); foreach (Entry currentNamespace in this.associatedEntry.Children) { CRefPath crefPath = CRefPath.Parse(string.Format("N:{0}", currentNamespace.SubKey)); // Find the description for the type // Block description = this.GetSummaryFor(xmlFile, currentType.Assembly, "/doc/members/member[@name='" + crefPath + "']/summary"); Hyperlink nameLink = new Hyperlink(new Run(currentNamespace.Name)); nameLink.Tag = new EntryKey(currentNamespace.Key, currentNamespace.SubKey); nameLink.Click += new System.Windows.RoutedEventHandler(LinkHelper.Resolve); classTable.AddItem(nameLink, string.Empty); } this.Blocks.Add(classTable); }
/// <summary> /// Generates the pages contents /// </summary> public override void Generate() { if (!this.IsGenerated) { TypeRef definingType = null; if (_fields.Count > 0) { definingType = _fields[0].Type; } if (!_xmlComments.Exists()) { this.Blocks.Add(new NoXmlComments(definingType)); } this.Blocks.Add(new Header1(definingType.GetDisplayName(false) + " Fields")); if (_fields != null && _fields.Count > 0) { SummaryTable displayedFields = new SummaryTable(); var sortedFields = from field in _fields orderby field.Name where !LiveDocumentorFile.Singleton.LiveDocument.IsMemberFiltered(field) select field; foreach (FieldDef currentField in sortedFields) { CRefPath crefPath = new CRefPath(currentField); Hyperlink link = new Hyperlink(); link.Inlines.Add(new Run(currentField.Name)); link.Tag = new EntryKey(currentField.GetGloballyUniqueId()); link.Click += new System.Windows.RoutedEventHandler(LinkHelper.Resolve); Block summary = GetXmlComments(currentField, crefPath); displayedFields.AddItem(link, summary, Model.ElementIconConstants.GetIconPathFor(currentField)); } this.Blocks.Add(displayedFields); } this.IsGenerated = true; } }
/// <summary> /// Generates the contents of the page. /// </summary> public override void Generate() { if (!this.IsGenerated) { this.Blocks.Add(new Header1(System.IO.Path.GetFileName(assembly.FileName))); Paragraph versionDetails = new Paragraph(); versionDetails.Inlines.Add(new Bold(new Run("Version: "))); versionDetails.Inlines.Add(new Run(assembly.Version.ToString())); this.Blocks.Add(versionDetails); // Output a list of namespaces in this assembly as links this.Blocks.Add(new Header2("Namespaces")); SummaryTable namespaces = new SummaryTable("Name", string.Empty, false, false); List <string> allNamespaces = this.assembly.GetNamespaces(); // Sort the namespaces allNamespaces.Sort(); int count = allNamespaces.Count; for (int i = 0; i < count; i++) { string current = allNamespaces[i]; if (string.IsNullOrEmpty(current)) { continue; // Skip the empty namespace defined in all assemblies } Hyperlink link = new Hyperlink(new Run(current)); link.Tag = new CrefEntryKey(assembly, "N:" + current); link.Click += new RoutedEventHandler(LinkHelper.Resolve); namespaces.AddItem(link, string.Empty); } this.Blocks.Add(namespaces); this.IsGenerated = true; } }
/// <summary> /// Adds a table of the <paramref name="types"/> to the document with a header <paramref name="name"/>. /// </summary> /// <param name="name">The header text.</param> /// <param name="types">The types to add to the table.</param> /// <param name="xmlFile">The XML file to read comments from.</param> private void OutputTypes(string name, IOrderedEnumerable <TypeDef> types, ICommentSource xmlFile) { if (types.Count() != 0) { SummaryTable classTable = new SummaryTable(); foreach (TypeDef currentType in types) { CRefPath crefPath = new CRefPath(currentType); // Find the description for the type Block description = this.GetSummaryFor( xmlFile, currentType.Assembly, crefPath ); Hyperlink nameLink = new Hyperlink(new Run(currentType.GetDisplayName(false))); nameLink.Tag = new EntryKey(currentType.GetGloballyUniqueId()); nameLink.Click += new System.Windows.RoutedEventHandler(LinkHelper.Resolve); classTable.AddItem(nameLink, description, Model.ElementIconConstants.GetIconPathFor(currentType)); } this.Blocks.Add(new Header2(name)); this.Blocks.Add(classTable); } }
/// <summary> /// Generates the contents of the page, utilising details of the /// type and its associated xml comments. /// </summary> public override void Generate() { if (!this.IsGenerated) { CRefPath crefPath = new CRefPath(this._representedType); List <Block> parsedBlocks = Elements.Parser.Parse(this._representedType.Assembly, _commentsXml, crefPath); if (!_commentsXml.Exists()) { this.Blocks.Add(new NoXmlComments(this._representedType)); } this.Blocks.Add(new Header1(this._representedType.Name + " Enumeration")); // Add the summary if it exists if (parsedBlocks != null) { Block summary = parsedBlocks.Find(currentBlock => currentBlock is Summary); if (summary != null) { this.Blocks.Add(summary); } } this.AddSyntaxBlock(this._representedType); // Add the table of classes to the page List <FieldDef> fields = this._representedType.GetFields(); SummaryTable classTable = new SummaryTable("Member Name", "Description", false); var sortedFields = from field in fields orderby field.Name select field; foreach (FieldDef currentField in sortedFields) { if (currentField.IsSystemGenerated) { continue; } Block description = this.GetSummaryFor( _commentsXml, currentField.Assembly, new CRefPath(currentField) ); classTable.AddItem(currentField.Name, description); } this.Blocks.Add(new Header2("Members")); this.Blocks.Add(classTable); if (parsedBlocks != null) { Block permissions = parsedBlocks.Find(current => current is PermissionList); if (permissions != null) { this.Blocks.Add(permissions); } } // Add the remarks if it exists if (parsedBlocks != null) { Block remarks = parsedBlocks.Find(currentBlock => currentBlock is Remarks); if (remarks != null) { this.Blocks.Add(remarks); } } // Add the example if it exists if (parsedBlocks != null) { Block summary = parsedBlocks.Find(currentBlock => currentBlock is Example); if (summary != null) { this.Blocks.Add(new Header2("Examples")); this.Blocks.Add(summary); } } // Add the seealso list if it exists this.AddSeeAlso(parsedBlocks); this.IsGenerated = true; } }
public override void Generate() { if (!IsGenerated) { TypeDef definingType = null; if (_typesMethods != null && _typesMethods.Count > 0) { definingType = _typesMethods[0].Type as TypeDef; } if (!_xmlComments.Exists()) { Blocks.Add(new NoXmlComments(definingType)); } Blocks.Add(new Header1(definingType.GetDisplayName(false) + " Methods")); if (_typesMethods != null && _typesMethods.Count > 0) { SummaryTable methods = new SummaryTable(); var sortedMethods = from method in this._typesMethods where !method.IsConstructor orderby method.Name where !LiveDocumentorFile.Singleton.LiveDocument.IsMemberFiltered(method) select method; foreach (MethodDef currentMethod in sortedMethods) { System.Windows.Documents.Hyperlink link = new System.Windows.Documents.Hyperlink(); link.Inlines.Add(new System.Windows.Documents.Run(currentMethod.GetDisplayName(false))); link.Tag = new EntryKey(currentMethod.GetGloballyUniqueId()); link.Click += new System.Windows.RoutedEventHandler(LinkHelper.Resolve); CRefPath path = new CRefPath(currentMethod); System.Windows.Documents.Block description = this.GetSummaryFor(_xmlComments, currentMethod.Assembly, path ); methods.AddItem(link, description, Model.ElementIconConstants.GetIconPathFor(currentMethod)); } Blocks.Add(methods); } if (definingType != null && definingType.ExtensionMethods.Count > 0) { SummaryTable methods = new SummaryTable(); var sortedMethods = from method in definingType.ExtensionMethods where !method.IsConstructor orderby method.Name where !LiveDocumentorFile.Singleton.LiveDocument.IsMemberFiltered(method) select method; foreach (MethodDef currentMethod in sortedMethods) { DisplayNameSignitureConvertor displayNameSig = new DisplayNameSignitureConvertor(currentMethod, false, true, true); System.Windows.Documents.Hyperlink link = new System.Windows.Documents.Hyperlink(); link.Inlines.Add(new System.Windows.Documents.Run(displayNameSig.Convert())); link.Tag = new EntryKey(currentMethod.GetGloballyUniqueId()); link.Click += new System.Windows.RoutedEventHandler(LinkHelper.Resolve); CRefPath path = new CRefPath(currentMethod); System.Windows.Documents.Block description = this.GetSummaryFor(_xmlComments, currentMethod.Assembly, path ); methods.AddItem(link, description, Model.ElementIconConstants.GetIconPathFor(currentMethod)); } Blocks.Add(new Header2("Extension Methods")); Blocks.Add(methods); } IsGenerated = true; // we also no longer need to store a reference to the XML file I think so we can remove it _xmlComments = null; _typesMethods = null; } }
/// <summary> /// Outputs the members tables. /// </summary> private void OutputMembersLists() { SummaryTable members; CRefPath crefPath; List <Block> tempContainer = new List <Block>(); var constructors = from method in this._representedType.GetConstructors() orderby method.Name where !LiveDocumentorFile.Singleton.LiveDocument.IsMemberFiltered(method) select method; if (constructors != null && constructors.Count() > 0) { tempContainer.Add(new Header2("Constructors")); members = new SummaryTable(); foreach (MethodDef currentMethod in constructors) { crefPath = new CRefPath(currentMethod); System.Windows.Documents.Hyperlink link = new System.Windows.Documents.Hyperlink(); link.Inlines.Add(new System.Windows.Documents.Run(currentMethod.GetDisplayName(false))); link.Tag = new EntryKey(currentMethod.GetGloballyUniqueId()); link.Click += new System.Windows.RoutedEventHandler(LinkHelper.Resolve); Block description = this.GetSummaryFor(_commentsXml, currentMethod.Assembly, crefPath); members.AddItem(link, description, Model.ElementIconConstants.GetIconPathFor(currentMethod)); } tempContainer.Add(members); } var fields = from field in this._representedType.GetFields() orderby field.Name where !LiveDocumentorFile.Singleton.LiveDocument.IsMemberFiltered(field) select field; if (fields != null && fields.Count() > 0) { tempContainer.Add(new Header2("Fields")); members = new SummaryTable(); foreach (FieldDef currentField in fields) { crefPath = new CRefPath(currentField); System.Windows.Documents.Hyperlink link = new System.Windows.Documents.Hyperlink(); link.Inlines.Add(new System.Windows.Documents.Run(currentField.Name)); link.Tag = new EntryKey(currentField.GetGloballyUniqueId()); link.Click += new System.Windows.RoutedEventHandler(LinkHelper.Resolve); Block description = this.GetSummaryFor(_commentsXml, currentField.Assembly, crefPath); Block value = this.GetSummaryFor(_commentsXml, currentField.Assembly, crefPath); if (description != null) { members.AddItem(link, description, Model.ElementIconConstants.GetIconPathFor(currentField)); } else { members.AddItem(link, value, Model.ElementIconConstants.GetIconPathFor(currentField)); } } tempContainer.Add(members); } var properties = from property in this._representedType.GetProperties() orderby new DisplayNameSignitureConvertor(property, false, true).Convert() where !LiveDocumentorFile.Singleton.LiveDocument.IsMemberFiltered(property) select property; if (properties != null && properties.Count() > 0) { tempContainer.Add(new Header2("Properties")); members = new SummaryTable(); foreach (PropertyDef currentProperty in properties) { crefPath = new CRefPath(currentProperty); System.Windows.Documents.Hyperlink link = new System.Windows.Documents.Hyperlink(); link.Inlines.Add(new Run(new DisplayNameSignitureConvertor(currentProperty, false, true).Convert())); link.Tag = new EntryKey(currentProperty.GetGloballyUniqueId()); link.Click += new System.Windows.RoutedEventHandler(LinkHelper.Resolve); Block description = this.GetSummaryFor(_commentsXml, currentProperty.OwningType.Assembly, crefPath); members.AddItem(link, description, Model.ElementIconConstants.GetIconPathFor(currentProperty)); } tempContainer.Add(members); } var events = from c in this._representedType.GetEvents() orderby c.Name where !LiveDocumentorFile.Singleton.LiveDocument.IsMemberFiltered(c) select c; if (events != null && events.Count() > 0) { tempContainer.Add(new Header2("Events")); members = new SummaryTable(); foreach (EventDef currentEvent in events) { crefPath = new CRefPath(currentEvent); System.Windows.Documents.Hyperlink link = new System.Windows.Documents.Hyperlink(); link.Inlines.Add(new System.Windows.Documents.Run(currentEvent.Name)); link.Tag = new EntryKey(currentEvent.GetGloballyUniqueId()); link.Click += new System.Windows.RoutedEventHandler(LinkHelper.Resolve); Block description = this.GetSummaryFor(_commentsXml, currentEvent.Type.Assembly, crefPath); members.AddItem(link, description, Model.ElementIconConstants.GetIconPathFor(currentEvent)); } tempContainer.Add(members); } var methods = from method in this._representedType.GetMethods() orderby method.Name where !LiveDocumentorFile.Singleton.LiveDocument.IsMemberFiltered(method) select method; if (methods != null && methods.Count() > 0) { tempContainer.Add(new Header2("Methods")); members = new SummaryTable(); foreach (MethodDef currentMethod in methods) { crefPath = new CRefPath(currentMethod); System.Windows.Documents.Hyperlink link = new System.Windows.Documents.Hyperlink(); link.Inlines.Add(new System.Windows.Documents.Run(currentMethod.GetDisplayName(false))); link.Tag = new EntryKey(currentMethod.GetGloballyUniqueId()); link.Click += new System.Windows.RoutedEventHandler(LinkHelper.Resolve); Block description = this.GetSummaryFor(_commentsXml, currentMethod.Assembly, crefPath); members.AddItem(link, description, Model.ElementIconConstants.GetIconPathFor(currentMethod)); } tempContainer.Add(members); } var operators = from method in this._representedType.GetOperators() orderby method.Name where !LiveDocumentorFile.Singleton.LiveDocument.IsMemberFiltered(method) select method; if (operators != null && operators.Count() > 0) { tempContainer.Add(new Header2("Operators")); members = new SummaryTable(); foreach (MethodDef currentMethod in operators) { crefPath = new CRefPath(currentMethod); System.Windows.Documents.Hyperlink link = new System.Windows.Documents.Hyperlink(); link.Inlines.Add(new System.Windows.Documents.Run(currentMethod.GetDisplayName(false))); link.Tag = new EntryKey(currentMethod.GetGloballyUniqueId()); link.Click += new System.Windows.RoutedEventHandler(LinkHelper.Resolve); Block description = this.GetSummaryFor(_commentsXml, currentMethod.Assembly, crefPath); members.AddItem(link, description, Model.ElementIconConstants.GetIconPathFor(currentMethod)); } tempContainer.Add(members); } if (this._representedType != null && this._representedType.ExtensionMethods.Count > 0) { members = new SummaryTable(); var sortedMethods = from method in this._representedType.ExtensionMethods where !method.IsConstructor orderby method.Name where !LiveDocumentorFile.Singleton.LiveDocument.IsMemberFiltered(method) select method; foreach (MethodDef currentMethod in sortedMethods) { DisplayNameSignitureConvertor displayNameSig = new DisplayNameSignitureConvertor(currentMethod, false, true, true); System.Windows.Documents.Hyperlink link = new System.Windows.Documents.Hyperlink(); link.Inlines.Add(new System.Windows.Documents.Run(displayNameSig.Convert())); link.Tag = new EntryKey(currentMethod.GetGloballyUniqueId()); link.Click += new System.Windows.RoutedEventHandler(LinkHelper.Resolve); CRefPath path = new CRefPath(currentMethod); Block description = this.GetSummaryFor(_commentsXml, currentMethod.Assembly, path ); members.AddItem(link, description, Model.ElementIconConstants.GetIconPathFor(currentMethod)); } tempContainer.Add(new Header2("Extension Methods")); tempContainer.Add(members); } if (tempContainer.Count > 0) { this.Blocks.Add(new Paragraph()); this.Blocks.Add(new Paragraph(new Run(string.Format("The {0} type exposes the following members.", this._representedType.GetDisplayName(false))))); this.Blocks.AddRange(tempContainer); } }
public override void Generate() { if (!this.IsGenerated) { CRefPath crefPath = null; SummaryTable members; if (!this.xmlComments.Exists()) { this.Blocks.Add(new NoXmlComments(this.representedType)); } this.Blocks.Add(new Header1(this.representedType.GetDisplayName(false) + " Members")); List <MethodDef> constructors = this.representedType.GetConstructors(); if (constructors != null && constructors.Count > 0) { this.Blocks.Add(new Header2("Constructors")); members = new SummaryTable(); var sortedMethods = from method in constructors orderby method.Name where !LiveDocumentorFile.Singleton.LiveDocument.IsMemberFiltered(method) select method; foreach (MethodDef currentMethod in sortedMethods) { crefPath = new CRefPath(currentMethod); System.Windows.Documents.Hyperlink link = new System.Windows.Documents.Hyperlink(); link.Inlines.Add(new System.Windows.Documents.Run(currentMethod.GetDisplayName(false))); link.Tag = new EntryKey(currentMethod.GetGloballyUniqueId()); link.Click += new System.Windows.RoutedEventHandler(LinkHelper.Resolve); Block description = this.GetSummaryFor(xmlComments, currentMethod.Assembly, crefPath); members.AddItem(link, description, Model.ElementIconConstants.GetIconPathFor(currentMethod)); } this.Blocks.Add(members); } List <FieldDef> fields = this.representedType.GetFields(); if (fields != null && fields.Count > 0) { this.Blocks.Add(new Header2("Fields")); members = new SummaryTable(); var sortedFields = from field in fields orderby field.Name where !LiveDocumentorFile.Singleton.LiveDocument.IsMemberFiltered(field) select field; foreach (FieldDef currentField in sortedFields) { crefPath = new CRefPath(currentField); System.Windows.Documents.Hyperlink link = new System.Windows.Documents.Hyperlink(); link.Inlines.Add(new System.Windows.Documents.Run(currentField.Name)); link.Tag = new EntryKey(currentField.GetGloballyUniqueId()); link.Click += new System.Windows.RoutedEventHandler(LinkHelper.Resolve); Block description = this.GetSummaryFor(xmlComments, currentField.Assembly, crefPath); Block value = this.GetSummaryFor(xmlComments, currentField.Assembly, crefPath); if (description != null) { members.AddItem(link, description, Model.ElementIconConstants.GetIconPathFor(currentField)); } else { members.AddItem(link, value, Model.ElementIconConstants.GetIconPathFor(currentField)); } } this.Blocks.Add(members); } List <PropertyDef> properties = this.representedType.GetProperties(); if (properties != null && properties.Count > 0) { this.Blocks.Add(new Header2("Properties")); members = new SummaryTable(); var sortedProperties = from property in properties orderby new DisplayNameSignitureConvertor(property, false, true).Convert() where !LiveDocumentorFile.Singleton.LiveDocument.IsMemberFiltered(property) select property; foreach (PropertyDef currentProperty in sortedProperties) { crefPath = new CRefPath(currentProperty); System.Windows.Documents.Hyperlink link = new System.Windows.Documents.Hyperlink(); link.Inlines.Add(new Run(new DisplayNameSignitureConvertor(currentProperty, false, true).Convert())); link.Tag = new EntryKey(currentProperty.GetGloballyUniqueId()); link.Click += new System.Windows.RoutedEventHandler(LinkHelper.Resolve); Block description = this.GetSummaryFor(xmlComments, currentProperty.OwningType.Assembly, crefPath); members.AddItem(link, description, Model.ElementIconConstants.GetIconPathFor(currentProperty)); } this.Blocks.Add(members); } List <EventDef> events = this.representedType.GetEvents(); if (events != null && events.Count > 0) { this.Blocks.Add(new Header2("Events")); members = new SummaryTable(); var sortedEvents = from c in events orderby c.Name where !LiveDocumentorFile.Singleton.LiveDocument.IsMemberFiltered(c) select c; foreach (EventDef currentEvent in sortedEvents) { crefPath = new CRefPath(currentEvent); System.Windows.Documents.Hyperlink link = new System.Windows.Documents.Hyperlink(); link.Inlines.Add(new System.Windows.Documents.Run(currentEvent.Name)); link.Tag = new EntryKey(currentEvent.GetGloballyUniqueId()); link.Click += new System.Windows.RoutedEventHandler(LinkHelper.Resolve); Block description = this.GetSummaryFor(xmlComments, currentEvent.Type.Assembly, crefPath); members.AddItem(link, description, Model.ElementIconConstants.GetIconPathFor(currentEvent)); } this.Blocks.Add(members); } List <MethodDef> methods = this.representedType.GetMethods(); if (methods != null && methods.Count > 0) { this.Blocks.Add(new Header2("Methods")); members = new SummaryTable(); var sortedMethods = from method in methods orderby method.Name where !LiveDocumentorFile.Singleton.LiveDocument.IsMemberFiltered(method) select method; foreach (MethodDef currentMethod in sortedMethods) { crefPath = new CRefPath(currentMethod); System.Windows.Documents.Hyperlink link = new System.Windows.Documents.Hyperlink(); link.Inlines.Add(new System.Windows.Documents.Run(currentMethod.GetDisplayName(false))); link.Tag = new EntryKey(currentMethod.GetGloballyUniqueId()); link.Click += new System.Windows.RoutedEventHandler(LinkHelper.Resolve); Block description = this.GetSummaryFor(xmlComments, currentMethod.Assembly, crefPath); members.AddItem(link, description, Model.ElementIconConstants.GetIconPathFor(currentMethod)); } this.Blocks.Add(members); } List <MethodDef> operators = this.representedType.GetOperators(); if (operators != null && operators.Count > 0) { this.Blocks.Add(new Header2("Operators")); members = new SummaryTable(); var sortedMethods = from method in operators orderby method.Name where !LiveDocumentorFile.Singleton.LiveDocument.IsMemberFiltered(method) select method; foreach (MethodDef currentMethod in sortedMethods) { crefPath = new CRefPath(currentMethod); System.Windows.Documents.Hyperlink link = new System.Windows.Documents.Hyperlink(); link.Inlines.Add(new System.Windows.Documents.Run(currentMethod.GetDisplayName(false))); link.Tag = new EntryKey(currentMethod.GetGloballyUniqueId()); link.Click += new System.Windows.RoutedEventHandler(LinkHelper.Resolve); Block description = this.GetSummaryFor(xmlComments, currentMethod.Assembly, crefPath); members.AddItem(link, description, Model.ElementIconConstants.GetIconPathFor(currentMethod)); } this.Blocks.Add(members); } if (this.representedType != null && this.representedType.ExtensionMethods.Count > 0) { members = new SummaryTable(); var sortedMethods = from method in this.representedType.ExtensionMethods where !method.IsConstructor orderby method.Name where !LiveDocumentorFile.Singleton.LiveDocument.IsMemberFiltered(method) select method; foreach (MethodDef currentMethod in sortedMethods) { DisplayNameSignitureConvertor displayNameSig = new DisplayNameSignitureConvertor(currentMethod, false, true, true); System.Windows.Documents.Hyperlink link = new System.Windows.Documents.Hyperlink(); link.Inlines.Add(new System.Windows.Documents.Run(displayNameSig.Convert())); link.Tag = new EntryKey(currentMethod.GetGloballyUniqueId()); link.Click += new System.Windows.RoutedEventHandler(LinkHelper.Resolve); CRefPath path = new CRefPath(currentMethod); Block description = this.GetSummaryFor(xmlComments, currentMethod.Assembly, path ); members.AddItem(link, description, Model.ElementIconConstants.GetIconPathFor(currentMethod)); } this.Blocks.Add(new Header2("Extension Methods")); this.Blocks.Add(members); } this.IsGenerated = true; } }