当前位置: 首页 > news >正文

.NET文档生成工具ADB使用图文教程

.NETv3.0 可再发行组件包
  • 类型:编程辅助大小:2.7M语言:中文 评分:1.8
  • 标签:

立即下载

 

ADB2.3使用指南

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

(1)主界面:

(2)批量选择:

4.生成的文档

(1)命名空间页面:

2.类型页面:

3.成员页面:

 

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

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

⑴目标:

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

a.在XML文档注释可以用插入图片;

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("<img src='{0}'/>", src);
                    }
                    return tag.ToString();
                }
            default:
                {
                    //其它标志由基类处理
                    return base.GetTag(elem, xmlFile);
                }
            }
        }
    }
}

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

⑶测试

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

namespace ClassLibrary1
{
    /// 
    /// Class摘要
    /// 
    /// 
    /// 自定义的节
    ///
<image src="1.gif"/>
/// public class Class1 { }}

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

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

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

ADB2.3支持的注释标记

转载于:https://www.cnblogs.com/webenh/p/5725291.html

相关文章:

  • Java中Enum枚举的使用
  • 【解决数据中心网速慢的八个检查必备步骤】
  • Centos 5.6 下安装XEN虚拟机以及EMOS
  • UVA1339 UVALive3213 POJ2159 ZOJ2658 Ancient Cipher【密码】
  • UVALive 4660 A+B
  • 切割Nginx日志的脚本
  • pg 学习资料
  • Ntp配置文件详解
  • httpd 启动报错“”Permission denied: make_sock: could not bind to address [::]:80“”
  • 定制yum仓库
  • WMIC Query SCSI Info
  • 基于Microchip单片机的触摸感应技术
  • 11g 新特性IGNORE_ROW_ON_DUPKEY_INDEX提示
  • sed-awk-正则表达式
  • CSS 漂亮搜索框美化代码
  • 【前端学习】-粗谈选择器
  • co模块的前端实现
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • ES2017异步函数现已正式可用
  • Github访问慢解决办法
  • JavaScript DOM 10 - 滚动
  • JavaScript中的对象个人分享
  • Java编程基础24——递归练习
  • markdown编辑器简评
  • Python十分钟制作属于你自己的个性logo
  • sessionStorage和localStorage
  • SwizzleMethod 黑魔法
  • TypeScript迭代器
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 关于springcloud Gateway中的限流
  • 聊聊hikari连接池的leakDetectionThreshold
  • 普通函数和构造函数的区别
  • 如何编写一个可升级的智能合约
  • 数据科学 第 3 章 11 字符串处理
  • 写给高年级小学生看的《Bash 指南》
  • Spring Batch JSON 支持
  • 关于Android全面屏虚拟导航栏的适配总结
  • ​Java并发新构件之Exchanger
  • #pragma multi_compile #pragma shader_feature
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • (70min)字节暑假实习二面(已挂)
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (二)WCF的Binding模型
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (三) diretfbrc详解
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转)scrum常见工具列表
  • (转)项目管理杂谈-我所期望的新人
  • ***测试-HTTP方法
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复