现在的位置: 首页 > 综合 > 正文

关于在C#中应用XML注释标记的一点想法

2012年11月09日 ⁄ 综合 ⁄ 共 1924字 ⁄ 字号 评论关闭

1. 涉及的内容:

  • Visual Studio 2005 开发环境
  • 在C#中编写注释
  • C#中的XML注释标记
  • Visual Studio 2005 IDE环境下的ToolTip自动提示

2. 发现的问题:

      在Visual Studio 2005 的C#开发环境下,利用自己编写的XML注释标记,可以实现调用函数时产生类似ToolTip的自动提示的效果,可以提示关于函数的功能和参数的信息。

问题:采用Visual Studio 2005 IDE自动生成的XML注释标记时,这种ToolTip只能提示<summary></summary>和<param></param>标签下的内容(如图1、图2)。<returns></returns>下的内容是不会提示的。换句话说,我觉得IDE提示的信息不够丰富,我想让它提示更多的信息,并且排版也要清晰、美观。

图1

图2

对应的XML注释:

图1和图2对应的XML注释代码
/// <summary>
/// 将属性信息写入数据库。
/// </summary>
/// <param name="toolAttributeWithValue">包含属性和属性值的ToolAttributeWithValue数组。</param>
/// <returns>成功-true;失败-false。</returns>
public static bool WriteAttribute(ToolAttributeWithValue[] toolAttributeWithValue) 

3. 实现的效果

  • 要能提示函数功能
  • 要能提示函数参数
  • 要能提示函数返回值
  • 要能实现不同信息的分行显示(排版)  
  • 图3展示了我想要实现的效果。

 
图3

对应的XML注释代码:

图3 对应的XML注释代码
/// <summary>
/// 功能:将属性信息写入数据库。<para />
/// <param name="toolAttributeWithValue">
/// 参数:包含属性和属性值的ToolAttributeWithValue数组。<para /></param>
/// <returns>
/// 返回:成功-true;失败-false。</returns>
/// </summary>
public static bool WriteAttribute(ToolAttributeWithValue[] toolAttributeWithValue)

4. 实现方法:

      将函数返回值也加入ToolTip提示:

      默认的XML注释标签的排列方式下, <summary><param><returns>是三个单独的标签对。这种情况下,当你在IDE中指向函数名时,ToolTip只包含<summary>标签下的内容,即参数和返回都不会提示。所以这里要对XML注释标记的排列顺序做一下调整。让<param><returns>成为<summary>的子元素。对应的XML注释代码如下所示:

调整标记顺序后的XML注释代码
/// <summary>
/// 功能:将属性信息写入数据库。
/// <param name="toolAttributeWithValue">参数:包含属性和属性值的ToolAttributeWithValue数组。</param>
/// <returns>返回:成功-true;失败-false。</returns>
/// </summary>

      到这里函数功能、参数、返回值都可以提示出来,但是它们是在一行显示的,没有分行,即没有排版效果。下面来实现分行的效果。这里要用到一上HTML标记,<para />。按道理说,这里应该用<br />更合适,但是我用<br />没能实现分行的效果,而<para />可以。对就的XML注释代码如果所示:

实现完整效果的XML注释代码
///<summary>
/// 功能:将属性信息写入数据库。<para />
///
/// <param name="toolAttributeWithValue">
/// 参数:包含属性和属性值的ToolAttributeWithValue数组。<para /></param>
/// <returns>
/// 返回:成功-true;失败-false。</returns>
/// </summary>

5. 可能的问题:

      这里不讨论如何用Visual Studio 2005 提取XML注释,生成XML文档。本文对<summary>、<param>、<returns>三个标签对的包含顺序的调整,可能会影响生成的XML文档。这个问题我没做验证,因为我现在不会用Visual studio 2005生成XML文档。

这是在“博客园”写的第一篇随笔,这个可以插入代码块的功能实在是太棒了!

抱歉!评论已关闭.