Ich muss alle Erweiterungsmethoden für die Datei auflisten.Wie man Verlängerungsmethoden auf Roslyn erhält?
Das ist, was ich bisher zu tun (sieht aus wie es funktioniert):
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)));
Auch wenn ich nicht alle Fälle sieht es testen könnte wie folgt funktioniert. Aber ich habe mich gefragt, ob es einen prägnanteren Weg gab, diese Lösung anzugehen.
Gibt es eine Art von IsExtension oder eine SyntaxKind.ExtensionMethod? Ich warf einen Blick darauf, konnte aber nichts Offensichtliches finden.
Ich verwende den neuesten Roslyn September/12
Vielen Dank für die Antwort, es hat funktioniert. Ich habe mich nur gefragt, ob ich meinen Ansatz verwenden könnte, um Referenzen zu vermeiden. Ich wollte das Projekt so unabhängig wie möglich gestalten. Vielen Dank. – eestein
Ja, wenn Sie keine Referenzen hinzufügen möchten, dann ist Ihre Herangehensweise vernünftig. – svick
Ok dann, danke! – eestein