博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.NET文档生成工具ADB[更新至2.3]
阅读量:4949 次
发布时间:2019-06-11

本文共 4056 字,大约阅读时间需要 13 分钟。

   

注意:使用该软件需先安装Microsoft HTML Help Workshop

程序的注释在程序的编写和维护中扮演着相当重要的角色,在Visual C#中,可以为代码创建文档,方法是在XML标记所指的代码块前面,直接在源代码的特殊注释字段中包括XML 标记。编译器编译时将在源代码中搜索所有的 XML 标记,并创建一个XML文档文件。.NET文档生成工具(下文简称为ADB)通过反射程序集及其代码中的XML注释来创建MSDN形式的API文档。

1.ADB2.3的功能特性:

(1)根据程序集及其对应的XML文档文件生成风格类似MSDN的文档,并打包为CHM文件;

(2)将多个程序集对应的文档合并到一个文档中;

(3)自动搜索程序集及其引用的程序集对应的XML文档(包括.Net自带的程序集,如:System.xml);

(4)灵活控制在文档中显示哪些成员(如:只生成公共方法);

(5)界面友好,操作简便。

(6)用户可以根据自己的需要;

(7)用户可以根据自己的需要编写自定义的文档生成器。

2.ADB2.3支持的注释标记

3.ADB2.3使用指南

ADB2.3使用方法如下图所示:

(1)主界面:

(2)批量选择:

4.生成的文档

(1)命名空间页面:

2.类型页面:

3.成员页面:

 

5.开发自定义文档生成器

ADB2.3支持加载用户自定义的文档生成器,用户可根据自己的需求开发文档生成器,下面以开发自定义文档生成器MyBuilder为例,说明如何开发自定义文档生成器:

⑴目标:

开发一个自定义文档生成器,该文档生成器在ADB默认文档生成器基础上扩展以下功能:

a.XML文档注释可以用<image>插入图片;

b.在类型页面和成员页面中增加一个名称为“自定义节”的内容节。

⑵开发步骤

a.点击菜单 工具->生成自定义文档解决方案->扩展XML文档注释,在弹出的对话框中输入文档生成器名称

b.打开工程中的MyBuilder.cs文件,输入以下代码

using System;using System.Collections.Generic;using System.Text;using ADB.Factories;using Microsoft.VisualBasic.FileIO;namespace CustomBuilder{    ///     /// MyBuilder    ///     public class MyBuilder : ADB.Factories.MSDNStyleCHMDocumentBuilder    {        static PageSection[] _memberPageSections, _typePageSections;        public MyBuilder(IGetData data, IInteract interact)            : base(data, interact)        {            //base.MemberPageSections为页面原有的节,将自定义节插入到页面的最后            _memberPageSections = new PageSection[base.MemberPageSections.Length + 1];            base.MemberPageSections.CopyTo(_memberPageSections, 0);            _memberPageSections[base.MemberPageSections.Length] =                 new PageSection("自定义节", PageSectionType.FromXML, "CustomSection");            //base.MemberPageSections为页面原有的节,将自定义节插入到页面的最后            _typePageSections = new PageSection[base.TypePageSections.Length + 1];            base.TypePageSections.CopyTo(_typePageSections, 0);            _typePageSections[base.TypePageSections.Length] =                 new PageSection("自定义节", PageSectionType.FromXML, "CustomSection");        }        //重写基类的MemberPageSections属性        public override PageSection[] MemberPageSections        {            get            {                return _memberPageSections;            }        }        //重写基类的TypePageSections属性        public override PageSection[] TypePageSections        {            get            {                return _typePageSections;            }        }        protected override string GetTag(System.Xml.XmlElement elem, string xmlFile)        {            switch (elem.Name)            {            case "CustomSection":                {                    //生成"自定义节"的内容                    return GetInnerTags(elem, xmlFile);                }            case "image":                {                    StringBuilder tag = new StringBuilder();                    string src = elem.GetAttribute("src");                    if (!string.IsNullOrEmpty(src))                    {                        try                        {                            //将图片拷贝到生成页面的目录中                            //(通过属性HtmlFileDirectory获取保存页面的目录)                            FileSystem.CopyFile(                                xmlFile + "\\" + src,                                 HtmlFileDirectory + "\\" + src,                                 true                            );                        }                        finally                        {                        }                        //生成HTML标志                        tag.AppendFormat("", src);                    }                    return tag.ToString();                }            default:                {                    //其它标志由基类处理                    return base.GetTag(elem, xmlFile);                }            }        }    }}

c.点击调试按钮调试自定义文档生成器 

⑶测试

由于测试的类及其XML注释:

namespace ClassLibrary1{    ///     /// Class摘要    ///     /// 
/// 自定义的节 ///
///
public class Class1 { }}

用自定义文档生成器MyBuilder生成的文档

⑷让ADB启动时自动加载文档生成器

ADB目录下新建目录MyBuilder,并将MyBuilder.dllMyBuilder.builder拷贝到该文件夹中

转载于:https://www.cnblogs.com/zhuawang/archive/2011/08/29/2158214.html

你可能感兴趣的文章
MediaWiki左侧导航栏通过特殊页面就可以设置。
查看>>
html基础之DOM操作
查看>>
几种图表库
查看>>
揭秘:黑客必备的Kali Linux是什么,有哪些弊端?
查看>>
linux系统的远程控制方法——学神IT教育
查看>>
springboot+mybatis报错Invalid bound statement (not found)
查看>>
Linux环境下SolrCloud集群环境搭建关键步骤
查看>>
P3565 [POI2014]HOT-Hotels
查看>>
UVa11078:Open Credit System
查看>>
MongoDB的简单使用
查看>>
git clone 遇到的问题
查看>>
hdfs 命令使用
查看>>
hdu 1709 The Balance
查看>>
prometheus配置
查看>>
定宽320 缩放适配手机屏幕
查看>>
BZOJ 2120 数颜色 【带修改莫队】
查看>>
【noip2004】虫食算——剪枝DFS
查看>>
Codeforces 40 E. Number Table
查看>>
CLR via C#(第3 版)
查看>>
java语法之final
查看>>