从C#源文件中提取doc注释

有没有人知道任何允许你直接从.cs文件中提取注释到一些简单文本甚至剪贴板的工具? 如果这样的工具也可以在方法级别工作,那就更好了。

不是在寻找像Sandcastle那样在构建时工作的东西,我正在寻找适用于单个源代码文件的东西。 基本上我需要将一大块方法签名和相关的文档注释复制到文本文件中,但我很无聊删除“///”并重新格式化行。 我希望能够右键单击一个方法并按照“将文档复制到剪贴板”的方式设置上下文菜单项。

有这样的工具吗?

无需自己动手,看看cr-documentor 。

CR_Documentor是DXCore的一个插件,允许您在Visual Studio中的工具窗口中预览文档在渲染时的外观。

它工作得很好,但我怀疑它与Resharper一起运行有点不稳定,所以我禁用它直到我使用它。

我刚刚写了一个工具来做到这一点。 它只是几行代码,它还没有完成,但扩展非常简单(明天我可能会这样做)。

结果:只需单击菜单中的提取,结果将显示在剪贴板上

替代文字

两个非常简单的步骤:

  1. 编写一个以文件为参数的程序,从该文件中获取一些文本并将其粘贴到剪贴板。
  2. 将该程序集成到IDE中。

第1步,第1部分主程序,获取文件,将其发送到’提取器’并将结果写入剪贴板。

class Program { [STAThread] static void Main(string[] args) { if (args.Length == 0) return; FileInfo f = new FileInfo(args[0]); Extracter e = new Extracter(f.OpenText().ReadToEnd()); Clipboard.SetText(e.GetExtractedText()); } } 

第1,第2部分提示符:当然使用正则表达式获取所需的所有文本模式,并返回符合要求的字符串。 我已经省略了关于post密度的评论,因为原理很简单并且已经解释过了。

 public class Extracter { private Regex re; // extend/adapt regex patterns for better result. const String RE_COMMENT_AND_NEXT_LINE= @"(?<=([\/]{3})).+"; public string FileText { get; set; } public Extracter(String FileText) { this.FileText = FileText; } public String GetExtractedText() { StringBuilder sb = new StringBuilder(String.Empty); re = new Regex(RE_COMMENT_AND_NEXT_LINE); foreach (Match match in re.Matches(FileText)) { sb.Append(match.ToString()); } return sb.ToString(); } } 

第2步:添加到IDE

那个IDE当然依赖,但总是很容易。 查看VS2008的截图:

替代文字

注释表单.cs文件自动转到xml文件。 以下是说明:

  • 打开项目属性 – > Build
  • 转到底部,有“输出”部分
  • 启用“XML文档文件”复选框,并设置此文件的输出路径
  • 在构建代码时,此文件将复制代码的所有文档。

从项目中获得所有评论后,您可以随心所欲地使用它。

http://msdn.microsoft.com/en-us/magazine/cc302121.aspx

建议:

您可以在日常工作中禁用它,就像项目大小增加一样,在构建期间生成此文件需要花费时间,因为它需要记录所有注释。 只需在发布代码时运行,即可获得所有文档。