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

时间:2009-04-17 09:22:18

标签: c# visual-studio documentation comments

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

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

是否存在任何此类工具?

3 个答案:

答案 0 :(得分:6)

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

结果:只需点击菜单中的摘录,结果就会显示在剪贴板上。

alt text

两个非常简单的步骤:

  1. 编写一个以文件为参数的程序,从该文件中获取一些文本并将其粘贴到剪贴板。
  2. 将该程序集成到IDE中。
  3. 第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部分 提示符:当然使用正则表达式获取所需的所有文本模式,并返回符合要求的字符串。我已经省略了关于帖子密度的评论,因为原理很简单并且已经解释过了。

    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的屏幕截图:

    alt text

答案 1 :(得分:3)

无需自己动手,请查看cr-documentor

  

CR_Documentor是一个插件   允许您预览的DXCore   文档的样子   何时渲染 - 在工具窗口中   在Visual Studio中。

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

答案 2 :(得分:2)

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

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

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

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

建议:

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