2016-06-08 3 views
0

Если, например, я объявляю класс интерфейса, фактический тип которого определяется только во время выполнения, и с помощью VisualStudio, когда я нажимаю на вызов метода и нажимаю «Перейти к реализации», я могу найти 3 реализации из классов, наследующих интерфейс.Получить метод реализации с Roslyn

Как я могу, используя Roslyn, получить синтаксические узлы/символы реализации метода?

ответ

0
+0

спасибо, что аккуратный. это работает, если реализация выполняется по другому проекту в рамках одного и того же решения/другого проекта, не входящего в одно и то же решение? – bee3

+0

@ bee3: Должно. Этот метод имеет только символы; символам не важно, где/как они определены. – SLaks

1

Посмотрите на code that implements Go To Implementation. Существует несколько общедоступных API-интерфейсов типа SymbolFinder, которые дают вам переопределения/реализации/производные типы, и каждый возвращает символы. Большая часть кода в функции - это просто выяснить, какой метод является правильным, с некоторой дополнительной фильтрацией, характерной для этой функции. Например, если у вас есть производный тип, у которого есть абстрактный член, основные функции вернут этот метод, но это не реализация значимого пути ради этой функции.

Смежные вопросы