我想分析一个用C#编写的项目。 我需要获取所有名称为“ ClassFoo”的类,该类的方法为“ MethodFoo”,参数类型为“ int”。
使用伪代码:
var slnFiles = new List<string>{"File1.cs","File2.cs"};
var codeDom = new CodeDomProvider(slnFiles);
foreach(domTree in codeDom)
{
var types = domTree.GetTypes().Where(x=>x.Name.Contains("ClassFoo"));
foreach(t in types)
{
t.GetMembers().Where( x=>x.IsMethod() && x.Name =="MethodFoo" x.Parameters.Contains(y=>y.Type.Name == "int"))
}
}
我已经阅读了有关'CodeDom'的信息,但是当我需要分析它时,我发现了加载和编译文件的唯一方法。 另外,我的目标可以借助反射来实现,但是我正在寻找一种无需编译即可分析C#文件的方法。