Exemplo n.º 1
0
        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");
            }
        }
Exemplo n.º 2
0
        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");
            }
        }
Exemplo n.º 3
0
        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);
        }