我使用以下代码从文件中提取所有方法。
var tree = file.GetSyntaxTreeAsync().Result;
var methodDeclarations = tree.GetRoot().DescendantNodes().OfType<MethodDeclarationSyntax>().ToList();
我怎么只能获得公共功能?
答案 0 :(得分:1)
如果要在文件中查找标记为公共的方法,则可以使用MethodDeclarationSyntax对象的Modifiers属性,如下所示:
var publicMethods = root.DescendantNodes()
.OfType<MethodDeclarationSyntax>()
.Where(method =>
method.Modifiers.Where(modifier =>
modifier.Kind() == SyntaxKind.PublicKeyword)
.Any());
如果您对该文件中声明的类的所有公共方法都感兴趣,则您需要注意@Slaks的建议并使用语义模型,因为在父类中声明的公共方法将不会仅使用语法分析。