public void HandleType(Type currentType, XmlDoc xdoc) { if (!currentType.IsPublic) { return; } var typeFullName = currentType.FullName; if (!this.docs.ContainsKey(typeFullName)) { var docVisitor = new TypeLinkAndBuilder(currentType); this.docs[typeFullName] = docVisitor; } var summary = xdoc.GetSummary("T:" + typeFullName); if (summary == null) { Console.WriteLine("no summary for " + typeFullName); } else { this.docs[typeFullName].Builder.Append(summary) .Append("\r\n"); } }
public void HandleMember(object info, XmlDoc xmldoc) { var isPublicOrProtected = false; var typeInfo = info as Type; var methodInfo = info as MethodInfo; var propertyInfo = info as PropertyInfo; var fieldInfo = info as FieldInfo; if (methodInfo != null) { isPublicOrProtected = methodInfo.IsPublic || methodInfo.IsFamily; } if (propertyInfo != null) { isPublicOrProtected = (propertyInfo.CanRead && (propertyInfo.GetGetMethod().IsPublic || propertyInfo.GetGetMethod().IsFamily)) || (propertyInfo.CanWrite && (propertyInfo.GetSetMethod().IsPublic || propertyInfo.GetSetMethod().IsFamily)); } if (fieldInfo != null) { isPublicOrProtected = fieldInfo.IsPublic || fieldInfo.IsFamily; } if (!isPublicOrProtected) { return; } string memberAnchor = MemberAnchor(info); this.memberFormats[memberAnchor] = FormatMember(info); if (!this.docs.ContainsKey(memberAnchor)) { var docVisitor = new StringBuilder(); this.docs[memberAnchor] = docVisitor; } string memberFullName = TypeNameUtil.XmlDocMemberName(info); var summary = xmldoc?.GetSummary(memberFullName); if (summary == null) { Console.WriteLine("no summary for " + memberFullName); } else { this.docs[memberAnchor].Append(summary) .Append("\r\n"); } }
internal static string GetSummary(MemberInfo info, XmlDoc xdoc, string memberName) { string summary; var attr = info?.GetCustomAttribute(typeof(ObsoleteAttribute)) as ObsoleteAttribute; summary = (attr != null) ? ("<b>Deprecated:</b> " + DocGenUtil.HtmlEscape(attr.Message)) : xdoc?.GetSummary(memberName); if (summary != null && attr == null && summary.IndexOf(".", StringComparison.Ordinal) >= 0) { summary = summary.Substring( 0, summary.IndexOf(".", StringComparison.Ordinal) + 1); } return(summary); }