NDoc使用简要手册

NDoc是.NET下的代码文档生成工具,类似JDoc。它利用Visual Studio.NET生成的程序集和XML文档,生成编译后的HTML帮助文档。该项目开源,可在官网下载源码。使用时需有编译后的程序集和导出的XML文件,XML文件由Visual Studio.NET生成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NDoc是一个.NET代码文档生成工具,有点象JDoc,但这个是在.NET下的工具。

NDoc使用Visual Studio.NET开发过程中生成的程序集和XML文档来生成一些格式象Visual Studio.NET和.NET Frmaework SDK在线帮助文档那样的一些编译后的HTML帮助文档。

它是一个OpenSource的项目,在http://ndoc.sourceforge.net可以下载到SourceCode。

使用十分简单,例如创建一个简单的项目来看NDoc可以为我们做些什么?
创建一个简单项目叫testNDoc,只有一个WindowForm,上面有个Button,单击显示信息。
将显示信息的类封装为ShowMsg类,只有一个方法ShowMessage.

代码如下:
showMsg.cs

None.gif using ?System;
None.gif
using ?System.Windows.Forms;
None.gif
None.gif
namespace ?testNDoc
ExpandedBlockStart.gif
{
ExpandedSubBlockStart.gif????
///?<summary></summary>
InBlock.gif????
///?ShowMsg?的摘要说明。
InBlock.gif????
///?显示测试信息的类
ExpandedSubBlockEnd.gif????
///?

InBlock.gif????public?class?ShowMsg
ExpandedSubBlockStart.gif????
{
InBlock.gif????????
public?ShowMsg()
ExpandedSubBlockStart.gif????????
{
InBlock.gif????????????
//
InBlock.gif????????????
//?TODO:?在此处添加构造函数逻辑
InBlock.gif????????????
//
ExpandedSubBlockEnd.gif
????????}

ExpandedSubBlockStart.gif????????
///?<summary></summary>
InBlock.gif????????
///?测试字符串
ExpandedSubBlockEnd.gif????????
///?

InBlock.gif????????private?string?testStr?=?null;
InBlock.gif
ContractedSubBlock.gif????????
#region?显示信息在信息框中的公有函数
ExpandedSubBlockStart.gif????????
///?<summary></summary>
InBlock.gif????????
///?显示信息在信息框中的公有函数
InBlock.gif????????
///?
ExpandedSubBlockEnd.gif????????
///?传递字符串参数

InBlock.gif????????public?void?ShowMessage(string?msg)
ExpandedSubBlockStart.gif????????
{????????
InBlock.gif????????MessageBox.Show(addStr(msg));
ExpandedSubBlockEnd.gif????????}

ExpandedSubBlockEnd.gif????????
#endregion

InBlock.gif
ExpandedSubBlockStart.gif????????
///?<summary></summary>
InBlock.gif????????
///?增加几个字符的私有函数
InBlock.gif????????
///?
InBlock.gif????????
///?传递字符串参数
ExpandedSubBlockEnd.gif????????
///?<returns></returns>返回处理过的字符串

InBlock.gif????????protected?string?addStr(string?msg)
ExpandedSubBlockStart.gif????????
{
InBlock.gif????????????
//?返回字符串
InBlock.gif
????????????return?"StrAdd:"?+?msg;
ExpandedSubBlockEnd.gif????????}

InBlock.gif????????
ExpandedSubBlockStart.gif? ??????
///?<summary></summary>
InBlock.gif????????
///?test?addOk
InBlock.gif????????
///?
InBlock.gif????????
///?
ExpandedSubBlockEnd.gif????????
///?<returns></returns>

InBlock.gif????????protected?string?addOk(string?msg)
ExpandedSubBlockStart.gif????????
{
InBlock.gif????????????
return?"Ok:"?+?msg;
ExpandedSubBlockEnd.gif????????}

ExpandedSubBlockEnd.gif????}

ExpandedBlockEnd.gif}

None.gif
Form1.cs
None.gif using ?System;
None.gif
using ?System.Drawing;
None.gif
using ?System.Collections;
None.gif
using ?System.ComponentModel;
None.gif
using ?System.Windows.Forms;
None.gif
using ?System.Data;
None.gif
None.gif
namespace ?testNDoc
ExpandedBlockStart.gif
{
ExpandedSubBlockStart.gif????
///?<summary></summary>
InBlock.gif????
///?Form1?的摘要说明。
ExpandedSubBlockEnd.gif????
///?

InBlock.gif????public?class?testNDoc?:?System.Windows.Forms.Form
ExpandedSubBlockStart.gif????
{
InBlock.gif????????
private?System.Windows.Forms.Button?btnShowMsg;
InBlock.gif????????
private?System.Windows.Forms.Button?btnNoSummary;
ExpandedSubBlockStart.gif????????
///?<summary></summary>
InBlock.gif????????
///?必需的设计器变量。
ExpandedSubBlockEnd.gif????????
///?

InBlock.gif????????private?System.ComponentModel.Container?components?=?null;
InBlock.gif
InBlock.gif????????
public?testNDoc()
ExpandedSubBlockStart.gif????????
{
InBlock.gif????????????
//
InBlock.gif????????????
//?Windows?窗体设计器支持所必需的
InBlock.gif????????????
//
InBlock.gif
????????????InitializeComponent();
InBlock.gif
InBlock.gif????????????
//
InBlock.gif????????????
//?TODO:?在?InitializeComponent?调用后添加任何构造函数代码
InBlock.gif????????????
//
ExpandedSubBlockEnd.gif
????????}

InBlock.gif
ExpandedSubBlockStart.gif????????
///?<summary></summary>
InBlock.gif????????
///?清理所有正在使用的资源。
ExpandedSubBlockEnd.gif????????
///?

InBlock.gif????????protected?override?void?Dispose(?bool?disposing?)
ExpandedSubBlockStart.gif????????
{
InBlock.gif????????????
if(?disposing?)
ExpandedSubBlockStart.gif????????????
{
InBlock.gif????????????????
if?(components?!=?null)?
ExpandedSubBlockStart.gif????????????????
{
InBlock.gif????????????????????components.Dispose();
ExpandedSubBlockEnd.gif????????????????}

ExpandedSubBlockEnd.gif????????????}

InBlock.gif????????????
base.Dispose(?disposing?);
ExpandedSubBlockEnd.gif????????}

InBlock.gif
ContractedSubBlock.gifExpandedSubBlockStart.gif????????
Windows?窗体设计器生成的代码
ExpandedSubBlockStart.gif????????
///?<summary></summary>
InBlock.gif????????
///?设计器支持所需的方法?-?不要使用代码编辑器修改
InBlock.gif????????
///?此方法的内容。
ExpandedSubBlockEnd.gif????????
///?

InBlock.gif????????private?void?InitializeComponent()
ExpandedSubBlockStart.gif????????
{
InBlock.gif????????????
this.btnShowMsg?=?new?System.Windows.Forms.Button();
InBlock.gif????????????
this.btnNoSummary?=?new?System.Windows.Forms.Button();
InBlock.gif????????????
this.SuspendLayout();
InBlock.gif????????????
//?
InBlock.gif????????????
//?btnShowMsg
InBlock.gif????????????
//?
InBlock.gif
????????????this.btnShowMsg.Location?=?new?System.Drawing.Point(72,?104);
InBlock.gif????????????
this.btnShowMsg.Name?=?"btnShowMsg";
InBlock.gif????????????
this.btnShowMsg.Size?=?new?System.Drawing.Size(128,?32);
InBlock.gif????????????
this.btnShowMsg.TabIndex?=?0;
InBlock.gif????????????
this.btnShowMsg.Text?=?"ShowMsg";
InBlock.gif????????????
this.btnShowMsg.Click?+=?new?System.EventHandler(this.btnShowMsg_Click);
InBlock.gif????????????
//?
InBlock.gif????????????
//?btnNoSummary
InBlock.gif????????????
//?
InBlock.gif
????????????this.btnNoSummary.Location?=?new?System.Drawing.Point(72,?160);
InBlock.gif????????????
this.btnNoSummary.Name?=?"btnNoSummary";
InBlock.gif????????????
this.btnNoSummary.Size?=?new?System.Drawing.Size(128,?32);
InBlock.gif????????????
this.btnNoSummary.TabIndex?=?1;
InBlock.gif????????????
this.btnNoSummary.Text?=?"No?Summary";
InBlock.gif????????????
this.btnNoSummary.Click?+=?new?System.EventHandler(this.btnNoSummary_Click);
InBlock.gif????????????
//?
InBlock.gif????????????
//?testNDoc
InBlock.gif????????????
//?
InBlock.gif
????????????this.AutoScaleBaseSize?=?new?System.Drawing.Size(6,?14);
InBlock.gif????????????
this.ClientSize?=?new?System.Drawing.Size(520,?341);
InBlock.gif????????????
this.Controls.Add(this.btnNoSummary);
InBlock.gif????????????
this.Controls.Add(this.btnShowMsg);
InBlock.gif????????????
this.Name?=?"testNDoc";
InBlock.gif????????????
this.Text?=?"testNDoc";
InBlock.gif????????????
this.ResumeLayout(false);
InBlock.gif
ExpandedSubBlockEnd.gif????????}

ExpandedSubBlockEnd.gif????????
#endregion

InBlock.gif
ExpandedSubBlockStart.gif????????
///?<summary></summary>
InBlock.gif????????
///?应用程序的主入口点。
ExpandedSubBlockEnd.gif????????
///?

InBlock.gif????????[STAThread]
InBlock.gif????????
static?void?Main()?
ExpandedSubBlockStart.gif????????
{
InBlock.gif????????????Application.Run(
new?testNDoc());
ExpandedSubBlockEnd.gif????????}

InBlock.gif????????
ExpandedSubBlockStart.gif????????
///?<summary></summary>
InBlock.gif????????
///?单击button显示信息
InBlock.gif????????
///?
InBlock.gif????????
///?
ExpandedSubBlockEnd.gif????????
///?

InBlock.gif????????private?void?btnShowMsg_Click(object?sender,?System.EventArgs?e)
ExpandedSubBlockStart.gif????????
{
InBlock.gif????????????ShowMsg?sMsg?
=?new?ShowMsg();
InBlock.gif????????????sMsg.ShowMessage(
"Hello?");
ExpandedSubBlockEnd.gif????????}

InBlock.gif
InBlock.gif????????
private?void?btnNoSummary_Click(object?sender,?System.EventArgs?e)
ExpandedSubBlockStart.gif????????
{
InBlock.gif????????????ShowMsg?sMsg?
=?new?ShowMsg();
InBlock.gif????????????sMsg.ShowMessage(
"No?Summary?Click!");
ExpandedSubBlockEnd.gif????????}

ExpandedSubBlockEnd.gif????}

ExpandedBlockEnd.gif}

None.gif


为了使用NDoc生成文档,必须有一个编译后的程序集和一个导出的XML文件,要生成这个XML文件,必须在项目属性中将生成XML文件的

选项填上文件名字,如下图:
NDoc1.JPG
编译有生成一个对应的XML文件:
NDoc2.JPG
打开XML文件看到以下内容(注意:这个XML文件并不是NDoc生成的,而是Visual Studio.NET生成的):

None.gif xml?version="1.0" ?>
None.gif
doc>
None.gif????
assembly>
None.gif????????
name>testNDocname>
None.gif????
assembly>
None.gif????
members>
None.gif????????
member?name="T:testNDoc.testNDoc">
None.gif????????????
summary>
None.gif????????????Form1?的摘要说明。
None.gif????????????
summary>
None.gif????????
member>
None.gif????????
member?name="F:testNDoc.testNDoc.components">
None.gif????????????
summary>
None.gif????????????必需的设计器变量。
None.gif????????????
summary>
None.gif????????
member>
None.gif????????
member?name="M:testNDoc.testNDoc.Dispose(System.Boolean)">
None.gif????????????
summary>
None.gif????????????清理所有正在使用的资源。
None.gif????????????
summary>
None.gif????????
member>
None.gif????????
member?name="M:testNDoc.testNDoc.InitializeComponent">
None.gif????????????
summary>
None.gif????????????设计器支持所需的方法?-?不要使用代码编辑器修改
None.gif????????????此方法的内容。
None.gif????????????
summary>
None.gif????????
member>
None.gif????????
member?name="M:testNDoc.testNDoc.Main">
None.gif????????????
summary>
None.gif????????????应用程序的主入口点。
None.gif????????????
summary>
None.gif????????
member>
None.gif????????
member?name="M:testNDoc.testNDoc.btnShowMsg_Click(System.Object,System.EventArgs)">
None.gif????????????
summary>
None.gif????????????单击button显示信息
None.gif????????????
summary>
None.gif????????????
param?name="sender">param>
None.gif????????????
param?name="e">param>
None.gif????????
member>
None.gif????????
member?name="T:testNDoc.ShowMsg">
None.gif????????????
summary>
None.gif????????????ShowMsg?的摘要说明。
None.gif????????????显示测试信息的类
None.gif????????????
summary>
None.gif????????
member>
None.gif????????
member?name="F:testNDoc.ShowMsg.testStr">
None.gif????????????
summary>
None.gif????????????测试字符串
None.gif????????????
summary>
None.gif????????
member>
None.gif????????
member?name="M:testNDoc.ShowMsg.ShowMessage(System.String)">
None.gif????????????
summary>
None.gif????????????显示信息在信息框中的公有函数
None.gif????????????
summary>
None.gif????????????
param?name="msg">传递字符串参数param>
None.gif????????
member>
None.gif????????
member?name="M:testNDoc.ShowMsg.addStr(System.String)">
None.gif????????????
summary>
None.gif????????????增加几个字符的私有函数
None.gif????????????
summary>
html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值