2016-06-08 12 views
0

Wenn ich zum Beispiel eine Interface-Klasse, deren tatsächliche Klasse Typ wird nur zur Laufzeit bestimmt werden, und mit VisualStudio, wenn ich mit der rechten Maustaste auf den Methodenaufruf und klicken Sie auf "Go To Implementation" Ich kann 3 finden Implementierungen von Klassen, die die Schnittstelle erben.Get Methode Implementierung mit Roslyn

Wie kann ich mit Roslyn die Implementierungssyntax der Knoten/Symbole der Methode erhalten?

Antwort

0
+0

danke, dass ordentlich. Funktioniert das, wenn sich die Implementierung in einem anderen Projekt innerhalb derselben Lösung/eines anderen Projekts befindet, das nicht in derselben Lösung enthalten ist? – bee3

+0

@ bee3: Es sollte. Bei dieser Methode geht es nur um Symbole. Symbolen ist es egal, wo/wie sie definiert sind. – SLaks

1

Schauen Sie sich einfach die code that implements Go To Implementation an. Es gibt mehrere öffentliche APIs auf dem Typ SymbolFinder, die Ihnen Überschreibungen/Implementierungen/abgeleitete Typen geben und jeweils Symbole zurückgeben. Der Großteil des Codes in der Funktion ermittelt nur, welche Methode zum Aufrufen geeignet ist, mit einigen zusätzlichen Filtern, die für die Funktion spezifisch sind. Wenn Sie beispielsweise einen abgeleiteten Typ haben, der ein abstraktes Element enthält, geben die Kernfunktionen diese Methode zurück, aber es handelt sich nicht um eine sinnvolle Implementierung des Features.