代码之家  ›  专栏  ›  技术社区  ›  Steve

从C#源文件中提取文档注释[关闭]

  •  5
  • Steve  · 技术社区  · 16 年前

    有人知道有什么工具可以让你直接从.cs文件中提取评论到一些简单的文本甚至剪贴板中吗?如果这样的工具也能在方法级别工作,那就更好了。

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

    有这样的工具吗?

    3 回复  |  直到 16 年前
        1
  •  3
  •   kay.herzam    16 年前

    我刚刚写了一个这样做的工具。这只是几行代码,还没有完成,但扩展起来很简单(我明天可能会在某个地方这样做)。

    剪贴板 .

    alt text

    1. 将该程序集成到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());
        }
    }
    

    提取器:当然,使用正则表达式从中获取所需的所有文本模式,并返回符合条件的字符串。我省略了关于帖子密度的注释,因为原理很简单,已经解释过了。

    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();
    
            }
        }
    

    alt text

        2
  •  6
  •   Community CDub    8 年前

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

    CR_Documentor是一个插件 DXCore 文档会是什么样子 在工具窗口中渲染时 在Visual Studio内部。

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

        3
  •  2
  •   Mutant    16 年前

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

    • 转到底部,有“输出”部分
    • 启用“XML文档文件”复选框并设置此文件的输出路径
    • 当您构建代码时,此文件将把代码的所有文档复制到其中。

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

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

    推荐文章