本文说明了 Visual Studio 如何通过自动生成标准的 XML 文档注释结构,来帮助记录类和方法等文档代码元素。 在编译时,可生成一个包含文档注释的 XML 文件。
可将由编译器生成的 XML 文件与 .NET 程序集一起分发,让 Visual Studio 和其他 IDE 能够使用 IntelliSense 快速显示类型和成员信息。 还可以通过 DocFX 和 Sandcastle 等工具运行 XML 文件,从而生成 API 参考网站。
C# 和 Visual Basic 中提供了可自动插入 XML 文档注释结构的 Insert Comment 命令。 在 C++ 中,可以手动插入 XML 文档注释,并且仍可在编译时生成 XML 文档文件。
启用文档生成
要启用文档生成,请在项目属性的“生成”>“输出”选项卡上选择“生成包含 API 文档的文件”复选框。
默认情况下,将在程序集所在目录中生成一个名称与程序集相同的文档文件,文件扩展名为 .xml。 如果要为该文件配置非默认名称或位置,请在“XML 文档文件路径”下相应输入或浏览到备用位置。
也可以将GenerateDocumentationFile 或 DocumentationFile 属性添加到 .csproj、.vbproj 或 .fsproj 文件。 将 GenerateDocumentationFile 设置为 true,以生成具有默认名称和位置的文档文件。 使用 DocumentationFile 属性指定其他名称或位置。如果使用 DocumentationFile 本身或将 GenerateDocumentationFile 属性设置为 true,则会生成具有指定名称和位置的文档文件。 但如果将 GenerateDocumentationFile 设置为 false,则即使设置了 DocumentationFile 属性,也不会生成任何文档文件。
启用注释插入键盘快捷方式
在 C# 中键入 ///
或在 Visual Basic 中键入 '''
后,可以设置注释选项以自动插入 XML 注释结构。
1、从 Visual Studio 菜单栏,选择“工具”>“选项”。
2、在“选项”对话框中,导航到“文本编辑器”>“C#”(或“Visual Basic”)>“高级”。
3、在“注释”部分下,选择或取消选择“为 \\\ 生成 XML 文档注释”(或“'''”)。
自动插入 XML 注释
1、在 Visual Studio 中,将游标放在要记录的元素上(例如,一种方法)。
2、请执行以下一项操作:
这时会立即基于代码元素生成 XML 注释结构。 例如,在注释 GetUserName
方法时,该模板会生成 <summary>
元素,为该参数生成一个 <param>
元素,并生成一个记录返回值的 <returns>
元素。
/// <summary> /// /// </summary> /// <param name="id"></param> /// <returns></returns> public string GetUserName(int id) { return "username"; }
''' <summary> ''' ''' </summary> ''' <param name="id"></param> ''' <returns></returns> Public Function GetUserName(id As Integer) As String Return "username" End Function
如果启用了自动注释插入快捷方式,请在 C# 中键入
///
或在 Visual Basic 中键入'''
。在“编辑”菜单上,选择“IntelliSense”>“插入注释”。
在右键单击或关联菜单中,选择“片段”>“插入注释”。
3、为每个 XML 元素输入说明以完整记录代码。 例如:
/// <summary> /// Gets the username associated with the specified ID. /// </summary> /// <param name="id">The unique user ID.</param> /// <returns>A string containing the username for the specified ID.</returns> public string GetUserName(int id) { return "username"; }
可以在注释中使用 XML 元素和样式,从而在将鼠标悬停在代码上时在“快速信息”中呈现。 这些元素包括斜体或粗体样式、项目符号列表或编号列表,以及可点击的 cref
或 href
链接。
例如,将 C# 程序文件中输入以下代码:
/// <summary> /// There are two <see href="https://bing.com">params</see>. /// <list type="number"> /// <item><param name="id">The user <em>id</em></param></item> /// <item><param name="username">The user <em>name</em></param></item> /// </list> /// </summary> /// <returns>The <strong>username</strong>.</returns> public static string GetUserName(int id) { return "username"; }
将鼠标悬停在 GetUserName 上时,“快速信息”窗格将显示如下: