我需要列出在文件中找到的所有扩展方法。
这就是我目前正在做的事情(看起来它正在工作):
var methods = nodes.OfType<MethodDeclarationSyntax>();
var extensionMethods = methods.Where(m =>
m.Modifiers.Any(t => t.Kind == SyntaxKind.StaticKeyword)
&& m.ParameterList.Parameters.Any(p =>
p.Modifiers.Any(pm => pm.Kind == SyntaxKind.ThisKeyword)));
即使我无法测试所有案例,但看起来这很有效。但我想知道是否有更简洁的方法来处理这个解决方案。
是否有某种 IsExtension 或某种 SyntaxKind.ExtensionMethod?我看了看,但至少找不到任何明显的东西。
我正在使用最新的 Roslyn 9 月 12 日