Dosyada bulunan tüm uzantı yöntemlerini listelemem gerekiyor.Roslyn'de uzatma yöntemleri nasıl edinilir?
Bu defa ne yapıyorum olduğunu (işe yarıyor gibi görünüyor):
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)));
Bu çalışıyor gibi görünüyor tüm durumlarda test edemedi bile. Ama bu çözüme yaklaşmanın daha özlü bir yolu olup olmadığını merak ediyordum.
Bir çeşit IsExtension veya bazı SyntaxKind.ExtensionMethod var mı? En azından bir baktım ama belli bir şey bulamadım.
Ben son Roslyn Sept/12
Cevabınız için teşekkürler, işe yaradı. Sadece referans eklemek zorunda kalmamak için yaklaşımımı kullanıp kullanamayacağımı merak ediyordum. Projeyi mümkün olduğunca bağımsız bırakmak istedim. Teşekkürler. – eestein
Evet, referans eklemek istemiyorsanız, yaklaşımınızın makul olduğunu düşünüyorum. – svick
Tamam o zaman, teşekkürler! – eestein