代码之家  ›  专栏  ›  技术社区  ›  Michał Ziober

识别C#源代码中的注释

  •  2
  • Michał Ziober  · 技术社区  · 15 年前

    如何识别C#源代码中的注释? 我想从评论中检索所有信息。

    public class TestClass
        {
            /// <summary>
            /// Sample method
            /// </summary>
            /// <param name="a">1 argument</param>
            /// <param name="b">2 argument</param>
            /// <param name="c">3 argument</param>
            /// <returns>true or false</returns>
            /// <exception cref="NotImplementedException">Always throw exception</exception>
            public bool Method(int a, object b, Panel c)
            {
                throw new NotImplementedException();
            }
        }
    
    1. 参数说明-“1参数,…”
    2. 返回值的说明-“true或false”
    3. 其他用户标签
    4 回复  |  直到 9 年前
        1
  •  5
  •   Marc Gravell    15 年前

    最简单的方法是启用xml注释生成(project properties->build),并解析xml文件。。。

    <?xml version="1.0"?>
    <doc>
        <assembly>
            <name>ClassLibrary2</name>
        </assembly>
        <members>
            <member name="M:TestClass.Method(System.Int32,System.Object,System.Windows.Forms.Panel)">
                <summary>
                Sample method
                </summary>
                <param name="a">1 argument</param>
                <param name="b">2 argument</param>
                <param name="c">3 argument</param>
                <returns>true or false</returns>
                <exception cref="T:System.NotImplementedException">Always throw exception</exception>
            </member>
        </members>
    </doc>
    
        2
  •  1
  •   Charlie Flowers    15 年前

    如果你真的想得到一份工作,你可以构建一个解析器。我想这取决于你想要实现什么,为什么,以及你必须投入多少资源/时间。如果你要分析C,考虑一下 ANTLR 或另一个解析器/编译器生成器。

    我跳到了复杂性谱的另一端,但我不知道你的情况,所以这可能是合适的。

    如果没有成熟的解析器,注释可能会很棘手。考虑这些边缘情况:

    // Blah blah // another double slash on the same line.
    /* 
     What about multi-line comments? 
    */
    
    /* 
       // What about double-slash comments inside of multi-line comments?
    */
    

    (我只是用这些边缘盒来抓表面)。

        3
  •  0
  •   bendewey    15 年前

    我不确定你打算如何展示这些数据,但有一个开源项目叫做 nDoc 在网页中很好地格式化此信息。

    即使你不使用nDoc,他们也很不错 instructions 关于启用XML输出

        4
  •  0
  •   Daniel Earwicker    15 年前