Sandcastle是微软提供的一个根据XML注释和DLL文件生成帮助文件的工具,目前是在CodePlex上的一个开源项目,可以去这里下载:Sandcatle 项目
Sandcastle 本身是一个console的程序,为了方便使用,我们可以使用他的GUI版本:Sandcastle Help File Builder
我们创建一个简单的ClassLibrary1项目最为示范:
using System; using System.Collections.Generic; using System.Text; namespace ClassLibrary1 { /// <summary> /// A sample class to show something using Sandcastle /// </summary> public class SampleClass { private string _propertyValue; /// <summary> /// Gets or sets the property value. /// </summary> /// <value>The property value.</value> public string Property { get { return _propertyValue; } set { _propertyValue = value; } } /// <summary> /// Determines whether the property is null. /// </summary> /// <returns> /// <c>true</c> if property is null; otherwise, <c>false</c>. /// </returns> public bool IsPropertyNull() { bool result = false; if (this.Property == null) { result = true; } return result; } /// <summary> /// Determines whether the property is null. /// </summary> /// <returns> /// <c>true</c> if property is empty; otherwise, <c>false</c>. /// </returns> /// <example> /// This example shows how you might use this method: /// /// <code> /// SampleClass sample = new SampleClass(); /// /// if (sample.IsPropertyEmpty()) /// { /// Console.WriteLine("The property is empty"); /// } /// else /// { /// Console.WriteLine("The property contains value " + sample.Property); /// } /// </code> /// </example> public bool IsPropertyEmpty() { bool result = this.IsPropertyNull(); if (!result) { result = (Property.Trim().Length == 0); } return result; } } }
代码很简单,注意其中的XML注释。
打开项目的属性,在“Build”选项中,确保“XML documentation file:”被选中了。
打开Sandcastle Help File Builder并新建一个项目:
为Sandcastle Help File Builder项目添加编译生成的DLL文件,右键点击项目右边的“Documentation Sources",选择“Add Documentation Source...”
选择刚刚生成的DLL文件。
在项目的属性窗口,你可以根据需要修改一些设置。
点击Build the help file来生成文档。
这是最终生成的文档: