我正在为以下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#源代码?
答案 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文件旁边的箭头单击并获取该文件中所有方法和变量的列表。如果他们是私人的,它甚至会显示挂锁。