正则表达式解析C#源代码

时间:2013-10-28 15:34:24

标签: c# regex parsing

我正在为以下C#源创建简单的文档地图。

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }

    public string DoSomething(string x)
    {
        return "Hello " + x;
    }
}

结果应以树木视图或列表视图的形式呈现,方式如下:

Person
-- Name
-- Age
-- DoSomething()

所以,问题是,是否有正则表达式或库来处理C#源代码?

2 个答案:

答案 0 :(得分:7)

你绝对不能使用正则表达式来解析C#源代码,因为C#没有常规语法。

你可以使用Roslyn:http://blogs.msdn.com/b/csharpfaq/archive/2011/10/19/introducing-the-microsoft-roslyn-ctp.aspx

或者,使用当前的C#编译器(或System.CodeDom.Compiler.CodeDomProvider.CreateProvider("CSharp").CompileAssemblyFromSource()方法)将代码编译为新的程序集,加载该程序集并使用反射来分析它。

答案 1 :(得分:0)

Visual Studio已经有了类似的东西。您可以使用CS文件旁边的箭头单击并获取该文件中所有方法和变量的列表。如果他们是私人的,它甚至会显示挂锁。