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

Jim*_*Jim 1 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

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

Person
-- Name
-- Age
-- DoSomething()
Run Code Online (Sandbox Code Playgroud)

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

Dav*_*rno 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()方法)将代码编译为新的程序集,加载该程序集并使用反射来分析它.